0

如何在 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

这是将时间戳插入列的正确方法吗?

4

2 回答 2

3

我想你是在倒过来考虑这个问题。您不会将文化不变信息添加到时间戳。您可以使用它来格式化时间戳(参见to_char),或者使用它来解析时间戳(参见datestyleconfig 选项)。

要插入时间戳,只需插入它,并适当地设置您的日期样式,然后将其转换为时间戳。因此,如果这始终是美国,那么:

但在你的情况下,我认为你的例子有问题,因为:

SELECT '18-06-12 10:34:09 PM'::timestamp;

之所以有效,是因为 2018 年是有效年份,但如果我首先SET DATESTYLE = 'US';出现错误,因为 18 不是有效月份。

于 2016-06-30T07:16:36.570 回答
1

正如我发现的,你必须使用ADD TIME ZONElike

(to_timestamp('18-06-12 10:34:09 PM', 'yy-MM-dd') AT TIME ZONE 'America/Los_Angeles')

PSAmerica/Los_Angeles这只是一个例子

于 2016-06-30T07:17:35.687 回答