gpt4 book ai didi

postgresql - to_timestamp 存储时区数据

转载 作者:行者123 更新时间:2023-11-29 11:51:38 25 4
gpt4 key购买 nike

我有两列,一列名为“日期”,另一列名为“时间”。日期是日期数据类型,“时间”是字符数据类型。我正在使用以下查询来选择一个新的组合时间戳列

SELECT 
to_timestamp(concat_ws(' ',air_date,air_time),'yyyy-MM-dd HH24:MI:SS') as datetime
FROM table1

这将返回正确的时间戳,但时区为“+00”。我想明确地告诉查询时区在“EST5EDT”中,以便我得到时区的“+04”或“+05”。我尝试了以下但收到错误

SELECT 
to_timestamp(concat_ws(' ',air_date,air_time,'EST5EDT'),'yyyy-MM-dd HH24:MI:SS TZ') as datetime
FROM table1

ERROR: "TZ"/"tz"/"OF" format patterns are not supported in to_date

SQL state: 0A000

如何选择其中包含 EST5EDT 时区信息的时间戳列?

最佳答案

如果您只是将 yoru tz 添加到时间戳转换中,它会添加适当的小时数:

t=# select 
concat_ws(' ','2016-08-16'::date,'10:00:00'::time,'EST5EDT')::timestamptz
, concat_ws(' ','2016-08-16'::date,'10:00:00'::time)::timestamptz;
concat_ws | concat_ws
------------------------+------------------------
2016-08-16 14:00:00+00 | 2016-08-16 10:00:00+00
(1 row)

如果我理解正确,您想要相同的日期和时间并附加 TZ“值”?那么这可能会有所帮助:

t=# set timezone = EST5EDT;
SET
t=# select
concat_ws(' ','2016-08-16'::date,'10:00:00'::time,'EST5EDT')::timestamptz
, concat_ws(' ','2016-08-16'::date,'10:00:00'::time)::timestamptz;
concat_ws | concat_ws
------------------------+------------------------
2016-08-16 10:00:00-04 | 2016-08-16 10:00:00-04
(1 row)

关于postgresql - to_timestamp 存储时区数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com