[英]Casting ISO8601 date text to Timestamp
我正在處理 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
SELECT '2020-05-15T19:01:59.22+00:00'::timestamp
2020-05-15 19:01:59:220 <--- ok, but I'm scared
我嘗試使用to_timestamp()
但找不到解決字符串中 T 的方法。 任何指導表示贊賞!
從您用於訪問 Postgres 的任何技術的角度來看,您所看到的似乎只是一個人工制品。 如本演示所示,實際上您的時間戳轉換工作正常。 考慮以下:
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;
上述查詢正確生成 59,002 作為時間戳中的毫秒數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.