我正在开发我的第一个postgres数据库模式,而且我对timestamptz数据类型的时区感到有些奇怪。
创建表并使用now()
函数将数据输入列后,我得到2015-11-17 12:10:05.764088-08
作为结果。我不明白“764088-08”对于时区标记是什么意思。 postgres文档说它看起来应该是这样的:
'2004-10-19 10:23:54+02'
我理解第二个时区格式,但第一个时区对我来说是一个很大的谜。我只是遗漏了什么? now()
功能不是您想要使用的吗?
答案 0 :(得分:0)
部分05.764088
指的是当前秒。它只是提供更精确的精度并返回精确的微秒(在本例中为764088
)。最后的-08
是指时区:
与UTC的时区偏移,以秒为单位。正值 对应于UTC以东的时区,对应于西区的负值 世界标准时间。 (从技术上讲,PostgreSQL使用UT1,因为闰秒不是 处理。)
函数now()
是与CURRENT_TIMESTAMP
等效的传统PostgreSQL。您可以查看确切的详细信息in the official documentation。