繁体   English   中英

如何在 Postgres 中将 YYYY-MM-DDTHH:mm:ss.SSSZ 时间戳转换为 YYYY-MM-DD HH:mm:ss

[英]How to convert YYYY-MM-DDTHH:mm:ss.SSSZ timestamp to YYYY-MM-DD HH:mm:ss in Postgres

问题总结

我想在 postgres 中转换并验证 YYYY-MM-DDTHH:mm:ss.SSSZ 格式的时间戳(例如:2022-06-15T08:27:00.599Z)。

我试过了

select * from my_table WHERE my_date >= date_trunc('second', '2022-06-15T08:27:00.599Z'::timestamp)

select to_char(to_timestamp('2022-06-15T08:27:00.599Z','YYYY-MM-DD\"T\"HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS')

这些查询在 db_fiddle 中执行良好,但在 python 和 postgres SQL 中运行时出错。

面对错误

RROR: TEIID31100 解析错误:在第 1 行遇到“'2022-06-15T08:27:00.599Z','YYYY-MM-DD"T"HH24:MI:SS),'[ ]YYYY[ ]-MM”,第 672 列。期待:“和”| “之间” | “在” | “是” | “喜欢” | "like_regex" | “不” | “或” | “订单” | “类似” ...org.teiid.jdbc.TeiidSQLException: TEIID31100 解析错误:遇到“'2022-06-15T08:27:00.599Z','YYYY-MM-DD"T"HH24:MI:SS),' [ ]YYYY[ ]-MM" 在第 1 行第 672 列。期待:"and" | “之间” | “在” | “是” | “喜欢” | "like_regex" | “不” | “或” | “订单” | "similar" ...;执行查询时出错 nil

我的需要

输入时间戳:2022-06-15 T 08:27:00.599 Z
预计时间戳:2022-06-15 08:27:00

感谢您的支持。

如果我过于简单化了您的问题,请原谅我,但是简单的演员表和date_trunc不能解决问题吗?

SELECT date_trunc('second','2022-06-15T08:27:00.599Z'::timestamp);

     date_trunc      
---------------------
 2022-06-15 08:27:00

另一种方法是使用::timestamp(0)对秒进行舍入 - 请参阅其他answer 但它会返回不同的结果:

SELECT '2022-06-15T08:27:00.599Z'::timestamp(0);

      timestamp      
---------------------
 2022-06-15 08:27:01

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM