PostgreSQL TIMESTAMP类型 时间戳

PostgreSQL TIMESTAMP类型 时间戳,第1张

概述PostgreSQL 提供两种存储时间戳的数据类型: 不带时区的 TIMESTAMP 和带时区的 TIMESTAMPTZ。 TIMESTAMP 数据类型可以同时存储日期和时间,但它不存储时区。这意味着,当修改了数据库服务器所在的时区时,它里面存储的值不会改变。 TIMESTAMPTZ 数据类型在存储日期和时间的同时还能正确处理时区。PostgreSQL 使用 UTC 值来存储 TIMESTAMPT

Postgresql 提供两种存储时间戳的数据类型: 不带时区的 TIMESTAMP 和带时区的 TIMESTAMPTZ

TIMESTAMP 数据类型可以同时存储日期和时间,但它不存储时区。这意味着,当修改了数据库服务器所在的时区时,它里面存储的值不会改变。

TIMESTAMPTZ 数据类型在存储日期和时间的同时还能正确处理时区。Postgresql 使用 UTC 值来存储 TIMESTAMPTZ 数据。在向 TIMESTAMPTZ 字段插入值的时候,Postgresql 会自动将值转换成 UTC 值,并保存到表里。当从一个 TIMESTAMPTZ 字段查询数据的时候,Postgresql 会把存储在其中的 UTC 值转换成数据库服务器、用户或当前连接所在的时区。

TIMESTAMP  TIMESTAMPTZ 都使用8字节存储空间。如下所示:

SELECT@H_403_58@      typname,typlenFROM@H_403_58@      pg_typeWHERE@H_403_58@      typname ~ ^timestamp@H_403_58@;   typname   |@H_403_58@ typlen-------------+-------- timestamp   |      8@H_403_58@ timestamptz |      8@H_403_58@(2 rows)

重要提示,TIMESTAMPTZ 并不会存储时区,它只是了 UTC 值,然后会和当前时区进行转换。

时间戳示例

首先,创建一个含有 TIMESTAMP 和 TIMESTAMPTZ 的表:

CREATE table timestamp_demo (ts TIMESTAMP,tstz TIMESTAMPTZ);

接下来,将数据库服务器的时区设置为 America/Los_Angeles

SET timezone = America/Los_Angeles;

顺便说一句,可以使用 SHOW TIMEZONE 语句来显示当前时区:

SHOW TIMEZONE;

然后,插入一些示例数据:

INSERT INTO@H_403_58@ timestamp_demo (ts,tstz)VALUES@H_403_58@ ( 2016-06-22 19:10:25-07@H_403_58@,2016-06-22 19:10:25-07@H_403_58@ );

最后,查询:

SELECT@H_403_58@ tsFROM@H_403_58@ timestampz_demo;         ts          |@H_403_58@          tstz---------------------+------------------------ 2016-06-22 19:10:25 | 2016-06-22 19:10:25-07@H_403_58@(1 row)

再把时区设置为 America/New_York

SET timezone = America/New_York;

再查询一次,结果如下:

         ts          |@H_403_58@          tstz---------------------+------------------------ 2016-06-22 19:10:25 | 2016-06-22 22:10:25-04@H_403_58@(1 row)

TIMESTAMP 类型字段的值不变,而 TIMESTAMPTZ 类型字段的值变成了当前时区下的时间。

原文:https://pg.sjk66.com/postgresql/timestamp

总结

以上是内存溢出为你收集整理的PostgreSQL TIMESTAMP类型 时间戳全部内容,希望文章能够帮你解决PostgreSQL TIMESTAMP类型 时间戳所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1160132.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存