我的表中有日期和时间字段。两者都是以本地服务器时间设置的。是否可以将两个字段强制转换为一个UTC ISO时间戳?
只需将两者相加即可:
SELECT date_col + time_col AS timestamp_col
无论如何,类型timestamp [without time zone]
在内部存储为UTC时间戳。只有显示器会根据会话的时区设置进行调整。如果需要将时间戳显示为UTC时间戳,请使用AT TIME ZONE
构造:
SELECT timestamp_col AT TIME ZONE 'UTC';
注意,这在应用于timestamp
时返回timestamp with time zone
详细信息:
- 在Rails和PostgreSQL中完全忽略时区
例如,在莫斯科将时间戳显示为timestamptz
:
SELECT (date_col + time_col) AT TIME ZONE 'Europe/Moscow' AS tstz_col