无法在Postgres“timestamp”中插入日期(Y-m-d H:i:s)

时间:2011-10-26 13:28:21

标签: postgresql cakephp timestamp

我正在尝试使用包含日期的cakephp在Postgres中插入数据。

我的数据库中的列是timestamp without timezone,我有一个日期时间字符串"Y-m-d H:i:s"(也尝试使用int)。

我必须投出该值吗?

2 个答案:

答案 0 :(得分:1)

只要文字文字是明确的且采用可接受的格式,就必须强制转换插入的值。

不要将日期('2011-10-21')误认为时间戳('2011-10-21 12:10:23')。
对于时间戳

,这是完全合法的
INSERT INTO tbl (timestamp_col)
VALUES ('2011-01-01 0:0:0');

但是你必须施放日期,在这种情况下导致'2011-01-01 0:0:0':

INSERT INTO tbl (timestamp_col)
VALUES ('2011-01-01'::timestamp);

ISO 8601格式'yyyy-mm-dd'表示日期,'yyyy-mm-dd hh:mm:ss'表示时间映射为unambiguous for any locale。其他格式可能取决于您的区域设置。

答案 1 :(得分:0)

使用

'Y-m-d H:i:s'::timestamp

不要忘记单引号

例如

select '2011-01-01'::timestamp