DATE
数据类型存储日期和时间信息。尽管日期和时间信息可以用字符和数字数据类型表示,但 DATE
数据类型具有特殊的关联属性。对于每个 DATE
值,OceaBase 存储以下信息:年、月、日、小时、分钟和秒,但是并不包含时区信息。
格式
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
数据类型储存小时、分钟和秒等时间信息,但是默认格式中并不包含时间信息。
取值范围
0001-01-01 00:00:00
~9999-12-31 23:59:59
示例
- 示例1: 返回当前的系统日期,由于未指定参数
fmt
,所以TO_CHAR
按数据类型的默认格式返回数据。
SELECT TO_CHAR(sysdate) FROM DUAL;
返回结果:
+------------------+
| TO_CHAR(SYSDATE) |
+------------------+
| 24-FEB-20 |
+------------------+
示例2: 在未指定
DATE
字面量的情况下,数据库将返回系统默认值:年:当前年份,由
SYSDATE
返回。月:当前月份,由
SYSDATE
返回。日:01,默认是当前月的第一天。
小时、分钟和秒均为 0。
本示例将使用 TO_DATE(string, format)
插入日期数据。TO_DATE
会将 string
中的字符串转化为format
中定义的格式。
例如当前查询是 2020 年 2 月发出的:
SELECT TO_CHAR(TO_DATE('2020', 'YYYY'),'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
返回结果:
+----------------------------------------------------------+
| TO_CHAR(TO_DATE('2020', 'YYYY'),'YYYY-MM-DD HH24:MI:SS') |
+----------------------------------------------------------+
| 2020-02-01 00:00:00|
+----------------------------------------------------------+