首页 > 解决方案 > 错误:带有时区的时间戳类型的输入语法无效:“09/03/1943 01:00:00 MWT”

问题描述

我正在将记录从table1.column1插入table2.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”。

标签: phppostgresql

解决方案


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

我建议您明确指定datetime字符串的格式当您要转换stringDateTime或时间戳时

您可以尝试使用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 |

推荐阅读