如何在Postgresql数据库中添加时间戳时添加文化不变信息?
创建表格查询:
CREATE TABLE Table1(Id SERIAL NOT NULL PRIMARY KEY,CreatedDate TIMESTAMP);
插入查询
insert into Table1 (CreatedDate)
values (convert(TIMESTAMP,'18-06-12 10:34:09 PM',112));
我在postgresql数据库中执行查询时遇到错误。
column "timestamp" does not exist
这是将时间戳插入列的正确方法吗?
答案 0 :(得分:3)
我认为你正在考虑这个问题。您不会将文化不变信息添加到时间戳。您可以使用它格式化时间戳(请参阅to_char
),或者使用它来解析时间戳(请参阅datestyle
配置选项)。
要插入时间戳,只需插入它,然后适当设置日期风格,然后将其转换为时间戳。所以,如果这总是美国,那么:
但在你的情况下,我认为你的例子中出现了错误,因为:
SELECT '18-06-12 10:34:09 PM'::timestamp;
有效,因为2018年是有效年份,但如果我先SET DATESTYLE = 'US';
,那么我会收到错误,因为18不是有效月份。
答案 1 :(得分:1)
正如我发现的那样,你必须使用ADD TIME ZONE
之类的
(to_timestamp('18-06-12 10:34:09 PM', 'yy-MM-dd') AT TIME ZONE 'America/Los_Angeles')
P.S。 America/Los_Angeles
这只是一个例子