postgresql常用时间类型包括:1. date仅存日期,格式yyYY-MM-DD;2. TIME存时间,可带精度p;3. TIME WITH TIME ZONE含时区但少用;4. timestamp存日期时间无时区;5. TIMESTAMP WITH TIME ZONE(TIMESTAMPTZ)最常用,内部以UTC存储并依会话时区转换;6. INTERVAL表示时间间隔,用于计算差值。

PostgreSQL 提供了多种时间类型,用于处理日期、时间以及带时区的数据。以下是常用的时间类型及其特点:
1. DATE
只存储日期,不包含时间部分。
格式:YYYY-MM-DD
取值范围:公元 4713 年前到 5874897 年后
示例:‘2025-04-05′
2. TIME [ (p) ] [ WITHOUT TIME ZONE ]
只存储时间,不包含日期。
格式:HH:MM:SS[.微秒]
可选精度 p(0-6,默认6)
示例:’14:30:25.123456′
3. TIME WITH TIME ZONE
存储时间及所在时区信息。
格式:HH:MM:SS+HH:MM
示例:’14:30:25+08:00′
注意:使用较少,很多场景推荐用 TIMESTAMP WITH TIME ZONE
4. TIMESTAMP [ (p) ] [ WITHOUT TIME ZONE ]
存储日期和时间,但不带时区。
格式:YYYY-MM-DD HH:MM:SS
示例:‘2025-04-05 14:30:25’
注意:存入什么时间就原样保存,不会自动转换
5. TIMESTAMP WITH TIME ZONE
存储带时区的日期时间,是实际开发中最常用的类型。
内部统一用 UTC 存储
显示时根据当前会话的时区设置自动转换
示例:‘2025-04-05 14:30:25+08:00’
别名:TIMESTAMPTZ
6. INTERVAL
表示两个时间点之间的时间间隔。
可用于加减日期时间
示例:‘1 day 2 hours 30 minutes’
用途:计算时间差、延迟执行等
基本上就这些。日常开发中,TIMESTAMP WITH TIME ZONE 和 DATE 使用最频繁,能覆盖大多数业务需求。选择合适类型有助于避免时区问题和数据误差。