版本:latest

日期类型

表 1 日期类型

名称描述存储空间范围
DATETIME/DATE存储不带时区的日期类型数据。
1. 保存年、月、日、时、分、秒
8字节[0001-01-01 00:00:00, 9999-12-31 23:59:59]
TIMESTAMP[(n)]存储不带时区的时间戳类型数据。
1. 保存年、月、日、时、分、秒、微妙
2. n取值范围[0,6],表示秒后面的精度。TIMESTAMP(n)也可以不带参数,即写为TIMESTAMP,这时秒后面小数位数的精度默认为6。
8字节[0001-01-01 00:00:00.000000, 9999-12-31 23:59:59.999999]
TIMESTAMP[(n)] WITH TIME ZONE存储带时区的时间戳类型数据。
1. 保存年、月、日、时、分、秒、微妙、时区
2. n取值范围[0,6],表示秒后面的精度。TIMESTAMP(n)也可以不带参数,即写为TIMESTAMP,这时秒后面小数位数的精度默认为6。
12字节[0001-01-01 00:00:00.000000, 9999-12-31 23:59:59.999999]
TIMESTAMP[(n)] WITH LOCAL TIME ZONE存储带时区的时间戳类型数据。不存储时区,存储时转换为数据库时区的TIMESTAMP,用户查看时转换为当前会话所在时区的TIMESTAMP。
1. 保存年、月、日、时、分、秒、微妙
2. n取值范围[0,6],表示秒后面的精度。TIMESTAMP(n)也可以不带参数,即写为TIMESTAMP,这时秒后面小数位数的精度默认为6。
8字节[0001-01-01 00:00:00.000000, 9999-12-31 23:59:59.999999]

表2显示了可以用于格式化日期和时间值的模板

表 2 用于日期/时间格式化的模式

类别模式描述
小时HH一天的小时数(01-12)
HH12一天的小时数(01-12)
HH24一天的小时数(00-23)
TZH时区信息的小时数
分钟MI分钟(00-59)
TZM时区信息的分钟数
FF微妙(000000-999999)
FF3微妙(000-999)
FF6微妙(000000-999999)
SS秒(00-59)
SSSSS午夜后的秒(0-86399)
上午、下午AM或A.M.上午标识
PM或P.M.下午标识
YYYY年(4位)
YYY年的后三位
YY年的后两位
Y年的最后一位
MONTH全长大写月份名
MON大写缩写月份名
MM月份数(01-12)
DAY全长大写日期名
DY缩写大写日期名
DDD一年里的日(001-366)
DD一个月里的日(01-31)
D一周里的日(1-7 ;周日是 1)
W一个月里的周数(1-5)(第一周从该月第一天开始)
WW一年里的周数(1-53)(第一周从该年的第一天开始)
世纪CC世纪(2位)
季度Q季度

示例:

SQL> select to_char(systimestamp, 'YYYY-MM-DD HH:MI:SS A.M.');

TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH:MI:SS A.M.')
-------------------------------------------------
2025-11-12 09:37:31 AM

1 rows fetched.

SQL> select to_char(systimestamp, 'YYYY-MM-DD HH:MI:SSXFF4');

TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH:MI:SSXFF4')
------------------------------------------------
2025-11-12 09:27:23.6485

1 rows fetched.

--创建表。
SQL> CREATE TABLE date_t1 (a datetime,b timestamp(6), c timestamp(4) with time zone, d TIMESTAMP(2) WITH LOCAL TIME ZONE); 

--插入数据。
SQL> INSERT INTO date_t1 VALUES ('2025-11-12 09:37:31', systimestamp, systimestamp, systimestamp);

--查看数据。
SQL> SELECT * FROM date_t1;

A                      B                                C                                        D
---------------------- -------------------------------- ---------------------------------------- --------------------------------
2025-11-12 09:37:31    2025-11-20 17:35:31.740367       2025-11-20 17:35:31.7404 +08:00          2025-11-20 17:35:31.74

1 rows fetched.

SQL> DROP TABLE date_t1;