PostgreSQL timestamp 与 timestamptz 区别
PostgreSQL 大约 1367 字相同点
- 都占用
8
字节。 - 存储时没有本质区别,都不携带时区信息。
不同点
insert returning
和select
时返回给客户端数据时不同。insert
时timestamp
会直接保存不做转换;timestamptz
会转换成当前数据库设置的时区,进行转换,再保存进数据库。select
时timestamp
会直接读取不做转换返回;timestamptz
会转换成当前数据库设置的时区或者客户端session
设置的时区,进行转换,返回给客户端。
演示
create table timestamp_test(t1 timestamp, t2 timestamptz);
insert into timestamp_test values(current_timestamp, current_timestamp);
查看数据
lite_note=# select * from timestamp_test ;
t1 | t2
----------------------------+-------------------------------
2023-10-29 16:59:39.211676 | 2023-10-29 16:59:39.211676+08
(1 row)
查看时区
show timezone;
输出
lite_note=# show timezone;
TimeZone
---------------
Asia/Shanghai
(1 row)
设置数据
set timezone=utc;
再次查看数据
lite_note=# select * from timestamp_test ;
t1 | t2
----------------------------+-------------------------------
2023-10-29 16:59:39.211676 | 2023-10-29 08:59:39.211676+00
(1 row)
再次插入一条数据
lite_note=# insert into timestamp_test values(current_timestamp, current_timestamp);
INSERT 0 1
lite_note=# select * from timestamp_test ;
t1 | t2
----------------------------+-------------------------------
2023-10-29 16:59:39.211676 | 2023-10-29 08:59:39.211676+00
2023-10-29 09:06:06.404674 | 2023-10-29 09:06:06.404674+00
(2 rows)
阅读 88 · 发布于 2023-11-11
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Spring Boot Thymeleaf 公共布局阅读 206
-
Redis运维监控命令阅读 2353
-
minikube 挂载本地磁盘到内置虚拟机中阅读 1035
-
Go 解决 HTTP 请求跨域问题阅读 2444
-
PostgreSQL 修改数据库拥有者阅读 3376
-
Java 并发编程之 AtomicIntergerArray AtomicLongArray AtomicReferenceArray阅读 714
-
AndroidStudio 设置 so 库过滤阅读 4623
-
MySQL 设置与更改用户密码阅读 1136
-
Docker 部署 Prometheus阅读 2693
-
Linux 增加 Swap 交换分区解决内存不足阅读 2699