Cod*_*ode 5 postgresql timezone timestamp
如何将timestampUTC 格式转换为timestamptz?
如果我的本地时区是 GMT-1 并且我运行:
select '2017-01-01 00:00:00'::timestamptz
我得到:
2017-01-01 00:00:00-01
但我想要:
2017-01-01 01:00:00-01
Erw*_*ter 13
更好的:
SELECT timestamp '2017-01-01 00:00:00' AT TIME ZONE 'UTC';
Run Code Online (Sandbox Code Playgroud)
构造后无需额外转换AT TIME ZONE。对于( timestamp with time zone= ) 输入,它返回( = ),反之亦然。timestamptztimestamp without time zonetimestamp
对于给定的示例,提供时间戳常量的最短、最有效的方法是timestamp '2017-01-01'。或者使用强制转换,几乎一样好:'2017-01-01'::timestamp。00:00:00缺失时假定时间部分。
不存在“UTC 时间戳”这样的东西。Atimestamp不携带时区信息。只有您知道它应该位于 UTC 时区。
类型名称“带时区的时间戳”有点误导。timestamptz也不携带任何时区信息。给定的时区名称、缩写或偏移量用于计算相应的 UTC 时间。文本输出(显示)会根据您会话的当前时区设置进行调整。仅存储相应 UTC 时间的裸值。时区本身永远不会被存储。如果需要,请将其另外存储在另一列中。在您的特定情况下,UTC恰好也是用于输入的时区。
详细解释:
| 归档时间: |
|
| 查看次数: |
14519 次 |
| 最近记录: |