在PostgreSQL中,当我使用SELECT NOW()
或SELECT NOW():TIMESTAMP AT TIME ZONE 'EST'
时,任何产生的TIMESTAMPTZ都显示在我的系统时间中。
另一方面,SQL Server有一个显式命令DATETIMEOFFSETFROMPARTS,它可以创建一个带有选定时间和时区的DATETIMEOFFSET条目,例如DATETIMEOFFSETFROMPARTS(2000,1,1,3,2,4,999999,4,30,7)将是“2000-01-01 3:02:04.999999 +04:30”。
Postgres的TIMESTAMPTZ似乎更倾向于在计算机系统时间中显示历史中的明确时刻(忽略由于DST而重复的1am-2am时段),而不是存储指定时区的日期时间。
1条答案
按热度按时间gopyfrb31#
你的观察是正确的。PostgreSQL的
timestamp with time zone
实际上是一个“绝对时间”,不存储时区信息。如果你想在表中存储特定的时区,你必须使用一个额外的列。