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