云数据库OceanBase入门教程 OceanBase DATE数据类型

2024-02-26 开发教程 云数据库OceanBase入门教程 匿名 3

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|
+----------------------------------------------------------+