【问题标题】:Timestamp format with offset in postgrespostgres中带有偏移量的时间戳格式
【发布时间】:2017-08-12 17:35:33
【问题描述】:

这真的难倒我,看起来应该没那么难,但在 postgres 9.6 中,我正在尝试用偏移量格式化时间戳。

这是我得到的最接近的:

SELECT to_char('2017-11-06 00:00:00'::TIMESTAMP WITH TIME ZONE AT TIME ZONE 'America/Vancouver', 'MM/DD/YYYY HH24:MI:SS (OF)');

上面的例子得到了正确的日期,但是偏移量是+00,这是不正确的。

有什么想法吗?

编辑:

另外,如何在函数中设置它?以下不起作用:

DECLARE 
    _tz text = 'PST8PDT';
BEGIN
    SET LOCAL TIME ZONE _tz;
...

【问题讨论】:

  • TIMESTAMP WITH TIME ZONE AT TIME ZONE 返回TIMESTAMP WITHOUT TIME ZONE 类型的值。那是因为偏移量是 0。

标签: postgresql datetime timestamp


【解决方案1】:

首先设置会话的时区,然后设置时间戳所在的时区。像这样:

SET TIME ZONE 'America/Vancouver';
SELECT to_char('2017-11-06 00:00:00'::TIMESTAMP AT TIME ZONE 'UTC', 'MM/DD/YYYY HH24:MI:SS (OF)');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多