【问题标题】:Postgresql SELECT CURRENT_TIMESTAMP does not show timezonePostgresql SELECT CURRENT_TIMESTAMP 不显示时区
【发布时间】:2020-09-22 11:31:54
【问题描述】:
【问题讨论】:
标签:
postgresql
timestamp
timezone
datagrip
timestamp-with-timezone
【解决方案1】:
连接时间戳和时区的 current_setting 为您提供预期值,您可以使用以下任何语法
SELECT CURRENT_TIMESTAMP|| ' ' ||current_setting('TIMEZONE');
SELECT now()|| ' ' ||current_setting('TIMEZONE');
您将使用 select current_setting('TIMEZONE'); 获取当前时区设置
这将为您提供所有时区,供您参考SELECT * FROM pg_timezone_names;
【解决方案2】:
- 检查您是否设置了时区
SHOW TIMEZONE;
- 如果不设置时区
SET TIMEZONE='YOUR_TIMEZONE';
如果您设置了时区,则将其添加到 IDEA 的 VM 选项中:
-Duser.timezone=YOUR_TIMEZONE
【解决方案3】:
这是一个演示问题,而不是一个真正的问题。 transaction_timestamp() 和 CURRENT_TIMESTAMP 都有时区。要正确显示,试试这个:
select to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD"T"HH24:MI:SSOF');
2020-06-03T21:54:08+03
select to_char(transaction_timestamp(), 'YYYY-MM-DD"T"HH24:MI:SSOF');
2020-06-03T22:00:36+03
它以 ISO8601 格式显示当前时间戳,并带有正确的时区偏移。
如果您需要毫秒,请使用以下格式模式:(or see the documentation)
'YYYY-MM-DD"T"HH24:MI:SS.MSOF'