[英]Convert date to YYYY-MM-DDThh:mm:ss.sssZ format in Postgresql
[英]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.