我有这个字符串2019-02-14T17:49:20.987
,我想将其解析为时间戳。因此,我正在使用to_timestamp
函数,它似乎工作正常,除了...问题在于那里的这个T字母。如何使PostgreSQL跳过它?
我应该在to_timestamp
中使用哪种模式?
我当然可以用空格替换T,然后解析它,但是我发现这种方法太笨拙了。
答案 0 :(得分:4)
如果模板字符串中的某些字符不是模板模式,则只需跳过输入数据字符串中的相应字符(无论它们是否等于模板字符串字符)。
因此,只需在其中放置任何非模板字符(例如X
)即可。
select to_timestamp('2019-02-14T17:49:20.987', 'YYYY-MM-DDXHH24:MI:SS.MS')
在线示例:https://rextester.com/OHYD18205
或者,您可以简单地转换值:
select '2019-02-14T17:49:20.987'::timestamp
答案 1 :(得分:2)
带有T
的字符串是timestamp
或timestamptz
的有效输入文字:
select '2019-02-14T17:49:20.987'::timestamp;
timestamp
-------------------------
2019-02-14 17:49:20.987
(1 row)