繁体   English   中英

错误:带时区的时间戳类型的输入语法无效:“09/03/1943 01:00:00 MWT”

[英]ERROR: invalid input syntax for type timestamp with time zone: "09/03/1943 01:00:00 MWT"

我插入记录从table1.column1table2.colum2 这两列都是timestampz类型。

不幸的是,一个值为“1943-09-03 01:00:00-06”的记录抛出以下错误:

错误:带时区的时间戳类型的输入语法无效:“09/03/1943 01:00:00 MWT”

我可以通过使用::TIMESTAMP来解决这个问题。

谁能告诉我修复它的正确方法是什么,为什么它只发生在一个记录中?

编辑1:

这两个表都在不同的数据库上。 所以我从Table1.column1选择值,然后在不同的数据库连接中分别插入到Table2.column2中。 我猜,PHP 的核心 PostgreSQL 函数将值“1943-09-03 01:00:00-06”转换为字符串时间“09/03/1943 01:00:00 MWT”,并且在插入时这个字符串时间抛出错误。

我实际上是在尝试插入“09/03/1943 01:00:00 MWT”而不是“1943-09-03 01:00:00-06”。

使用::TIMESTAMP将使用 DB 默认时间格式,格式取决于您的 DB 文化。

当您想将string转换为DateTime或时间戳时,我建议您明确指定字符串的datetime格式

您可以尝试使用to_timestamp函数并将字符串设置为DateTime格式。

查询 1

SELECT to_timestamp('09/03/1943 01:00:00 MWT', 'DD/MM/YYYY hh24:mi:ss')

结果

|         to_timestamp |
|----------------------|
| 1943-03-09T01:00:00Z |

暂无
暂无

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

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