Postgresql 将ISO8601日期文本转换为时间戳
我正在处理ISO 8601中的一些日期,当转换为时间戳时,我会在毫秒内得到一些奇怪的结果:Postgresql 将ISO8601日期文本转换为时间戳,postgresql,dbeaver,postgresql-11,Postgresql,Dbeaver,Postgresql 11,我正在处理ISO 8601中的一些日期,当转换为时间戳时,我会在毫秒内得到一些奇怪的结果: SELECT '2020-05-15T19:01:59.002+00:00'::timestamp 2020-05-15 19:01:59:02 <--- wrong milliseconds SELECT '2020-05-15T19:01:59.022+00:00'::timestamp 2020-05-15 19:01:59:22 <--- wrong milliseconds SE
SELECT '2020-05-15T19:01:59.002+00:00'::timestamp
2020-05-15 19:01:59:02 <--- wrong milliseconds
SELECT '2020-05-15T19:01:59.022+00:00'::timestamp
2020-05-15 19:01:59:22 <--- wrong milliseconds
SELECT '2020-05-15T19:01:59.22+00:00'::timestamp
2020-05-15 19:01:59:220 <--- ok, but I'm scared
选择“2020-05-15T19:01:59.002+00:00”::时间戳
2020-05-15 19:01:59:02无论您使用何种技术访问博士后,您所看到的似乎只是一个人工制品。如图所示,实际上对时间戳的转换工作正常。考虑以下事项:
WITH yourTable AS (
SELECT '2020-05-15T19:01:59.002+00:00'::timestamp AS ts
)
SELECT
ts,
EXTRACT(milliseconds FROM ts) AS millis
FROM yourTable;
上述查询正确地生成59002作为时间戳中的毫秒数。。我认为问题可能是您没有以预期的格式查看输出。@TimBiegeleisen yep!Dbeaver在耍我的把戏!请回答。谢谢你的时间!我在postgres 13的psql中测试了它,它工作正常。也许它也应该在12级研究生中工作。