我无法弄清楚如何将存储的时间戳转换为任何本地时区,例如我有这个查询
SELECT INTO result string_agg(concat_ws(' - '
,sampleid
,starttime
,stoptime)
,'|')
FROM (
Select "ID" as sampleid,
to_char("StartTimestamp",'YYYY/MM/DD HH24:MI:SS') as starttime,
to_char("EndTimestamp",'YYYY/MM/DD HH24:MI:SS') as stoptime from "Samples" ORDER BY starttime DESC) res;
即使" StartTimestamp"属于timestamp with time zone
类型我不知道如何将其转换为系统所在的本地时区。
答案 0 :(得分:0)
使用AT TIME ZONE
运算符 - 或者只设置TimeZone
系统变量。
thetimestamptz AT TIME ZONE 'Australia/Perth'
这也适用于UTC偏移,但要注意PostgreSQL使用ISO-8601标准进行UTC偏移。
请参阅PostgreSQL文档中的Timezones。请特别注意有关时区格式的段落以及段落:
要记住的另一个问题是,在POSIX时区名称中,正偏移用于格林威治以西的位置。在其他地方,PostgreSQL遵循ISO-8601惯例,即正时区偏移位于格林威治以东。