php - 错误:带有时区的时间戳类型的输入语法无效:“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”。
解决方案
using::TIMESTAMP
将使用 DB 默认时间格式,格式取决于您的 DB 文化。
我建议您明确指定datetime
字符串的格式当您要转换string
为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 |
推荐阅读
- jquery - 如何使用 jQuery.inArray 检查具有动态值的数组
- typescript - 如何区分与泛型的工会?
- python - pip 无法安装 Cufflinks_ 错误:命令出错,退出状态为 1:
- reactjs - 获取错误:调用 axios 获取请求时请求中止
- javascript - React Native 如何获取 cookie
- javascript - 使用 Google App Script 在 Google Sheet 中添加一行
- sql - 使用 Postgres 查询时间间隔
- java - 如何初始化输入流
- algorithm - Boost Graph 最大流算法找出最小 S/T 割上的弧
- apache-kafka - Kinesis 到 Kafka