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

时间:2018-09-03 07:06:08

标签: php postgresql

我正在将记录从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”。

1 个答案:

答案 0 :(得分:0)

使用@Controller将使用数据库默认时间格式,该格式取决于您的数据库文化。

当您要将::TIMESTAMP转换为datetime或时间戳记时,建议您明确指定字符串的string格式

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

查询1

DateTime

Results

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