首批通过分布式安全可靠测评,为关键业务系统打造
DATE 数据类型
更新时间:2024-07-29 11:16:14
DATE 数据类型存储日期和时间信息。本文主要介绍 DATE 数据类型的语法、参数和使用说明。
语法
DATE 数据类型的默认输入输出格式由 NLS_DATE_FORMAT 决定,运行以下 SQL 语句查看默认格式:
SELECT @@NLS_DATE_FORMAT FROM DUAL;
返回结果如下:
DD-MON-RR
如果需要自定义数据的格式,可以使用转换函数。在插入数据时,可以通过函数 TO_DATE (char,fmt) 指定数据的输入格式。查询数据时,可以通过函数 TO_CHAR (datetime,fmt) 指定数据的输出格式。这两个转换函数会将字符串转化为参数 fmt 中定义的格式。在 fmt 未指明的情况下,使用默认格式。
注意
DATE 数据类型储存小时、分钟和秒等时间信息,但是默认格式中并不包含时间信息。
使用说明
尽管日期和时间信息可以用字符和数字数据类型表示,但 DATE 数据类型具有特殊的关联属性。对于每个 DATE 值,OceanBase 数据库存储以下信息:年、月、日、小时、分钟和秒,但是并不包含时区信息。取值范围为 0001-01-01 00:00:00~9999-12-31 23:59:59。 在未指定 DATE 字面量的情况下,数据库将返回系统默认值:
年:当前年份,由
SYSDATE返回。月:当前月份,由
SYSDATE返回。日:01,默认是当前月的第一天。
小时、分钟和秒均为 0。
示例
返回当前的系统日期,由于未指定参数
fmt,所以TO_CHAR按数据类型的默认格式返回数据。obclient> SELECT TO_CHAR(sysdate) FROM DUAL; +------------------+ | TO_CHAR(SYSDATE) | +------------------+ | 27-OCT-21 | +------------------+ 1 row in set使用
TO_DATE(string, format)插入日期数据。TO_DATE会将string中的字符串转化为format中定义的格式。obclient> SELECT TO_CHAR(TO_DATE('2020', 'YYYY'),'YYYY-MM-DD HH24:MI:SS') FROM DUAL; +--------------------------------------------------------+ | TO_CHAR(TO_DATE('2020','YYYY'),'YYYY-MM-DDHH24:MI:SS') | +--------------------------------------------------------+ | 2020-10-01 00:00:00 | +--------------------------------------------------------+ 1 row in set