我有一个日期时间列,其格式如下:
2019-11-10-07.10.55.865000
我希望我的格式如下:
2019-11-10 07:10:55.865000
如何在PostgreSQL 9.6.11中做到这一点?
我有一个日期时间列,其格式如下:
2019-11-10-07.10.55.865000
我希望我的格式如下:
2019-11-10 07:10:55.865000
如何在PostgreSQL 9.6.11中做到这一点?
我们可以尝试从文本到时间戳进行完整的往返,然后再次返回文本:
SELECT
TO_CHAR(TO_TIMESTAMP('2019-11-10-07.10.55.865000','YYYY-MM-DD-HH.MI.SS.US'),'YYYY-MM-DD HH:MI:SS.US') AS ts_out;
这将输出:
2019-11-10 07:10:00.865000
作为旁注,您应该认真考虑 not 首先将时间戳记存储为文本。理想情况下,如果您想以某种方式查看时间戳列,例如出于报告目的,您只需使用要使用的格式掩码对TO_CHAR
进行一次调用。
有l <- readLines("delim.txt")
ch <- c(grep("^\\D",l))
l2 <- apply(rbind(ch,c(ch[-1] - 1,length(l))),2,function(x) Reduce(paste,l[x[1]:x[2]]))
l3 <- lapply(sapply(strsplit(l2,"\\D"),as.numeric),na.omit)
d <- matrix(NA,max(sapply(l3,max)),length(l3))
let <- gsub("(.*)\\=.*","\\1",l2) # the col-names
sapply(seq(length(l3)),function(n) d[l3[[n]],n] <<- let[n])
setNames(as.data.frame(d),let)
# A B C
# 1 A <NA> <NA>
# 2 A <NA> <NA>
# 3 A B <NA>
# 4 <NA> B <NA>
# 5 <NA> B C
# 6 A <NA> <NA>
# 7 A <NA> C
# 8 <NA> <NA> C
# 9 A <NA> <NA>
# 10 A <NA> C
# 11 <NA> <NA> C
# 12 <NA> <NA> <NA>
# 13 <NA> <NA> C
# 14 <NA> <NA> C
函数,例如to_char(timestamp,text)
https://www.postgresql.org/docs/current/functions-formatting.html