暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 日期类型

墨天轮 2019-10-12
2283

日期类型

GaussDB 100目前支持的日期/时间类型包括DATE、带时区和不带时区的时间戳以及时间间隔。

DATETIME/DATE

语法

DATETIME

功能:存储不带时区的日期类型数据。

保存年、月、日、时、分、秒。

取值范围:[0001-01-01 00:00:00,9999-12-31 23:59:59]。

占用空间:8字节。

对应关键字

  • DATE
  • DATETIME

TIMESTAMP

语法

TIMESTAMP[(n)]

功能:存储不带时区的时间戳类型数据。

  • 保存年、月、日、时、分、秒,微秒。
  • n取值范围[0,6],表示秒后面的精度。TIMESTAMP(n)也可以不带参数,即写为TIMESTAMP,这时秒后面小数位数的精度默认为6。

取值范围:[0001-01-01 00:00:00.000000,9999-12-31 23:59:59.999999]。

占用空间:8字节。

对应关键字:TIMESTAMP

TIMESTAMP(n) WITH TIME ZONE

语法

TIMESTAMP(n) WITH TIME ZONE

功能:存储带时区的时间戳类型数据。

  • 保存年、月、日、时、分、秒,微秒,时区。
  • n取值范围[0,6],表示秒后面的精度。TIMESTAMP(n)也可以不带参数,即写为TIMESTAMP,这时秒后面小数位数的精度默认为6。

取值范围:[0001-01-01 00:00:00.000000,9999-12-31 23:59:59.999999]。

占用空间:12字节。

对应关键字:TIMESTAMP(n) WITH TIME ZONE

TIMESTAMP(n) WITH LOCAL TIME ZONE

语法

TIMESTAMP(n) WITH LOCAL TIME ZONE

功能:带时区的时间戳类型数据。不存储时区,存储时转换为数据库时区的TIMESTAMP,用户查看时转换为当前会话所在时区的TIMESTAMP,TIMESTAMP(n)也可以不带参数,即写为TIMESTAMP,这时秒后面小数位数的精度默认为6。

占用空间:8字节。

对应关键字:TIMESTAMP(n) WITH LOCAL TIME ZONE

日期类型的格式控制符

日期类型的格式控制符见表1。并不是所有的格式化字符串都可以转换,只有在格式控制符表中被标定为可逆的控制符才允许转换。
表1 日期类型的格式控制符

符号

说明

转换是否可逆

示例

" "(空格)、"-"(中划线)、

"\"、"/" 、":"、

","、"."、";"、"X"

分隔符

--用分隔符"X"分隔日期类型数据中的秒和毫秒。 select to_timestamp('2017-09-11 23:45:59.44', 'YYYY-MM-DD HH24:MI:SSXFF6') from SYS_DUMMY;
--用分隔符"-"(中划线)、"/"、":"、 "."分隔日期类型数据。 select to_char(systimestamp, 'YYYY-MM/DD HH24.MI:SS.FF') from SYS_DUMMY;
--用分隔符" "(空格)、"\"、","、 ";"分隔日期类型数据。 select to_char(systimestamp, 'YYYY MM\DD HH24.MI;SS,FF') from SYS_DUMMY;

"text"

文本类型

文本类型,作为输出参数时,输出引号中包含的内容;作为输入参数时,跳过引号中的内容,忽略空格。

select to_char(sysdate, '"Hello world!"') from SYS_DUMMY;

AM、PM

上午和下午指示符

select to_char(systimestamp, 'HH12:MI:SS AM') from SYS_DUMMY;

CC

世纪

select to_char(systimestamp, 'CC') from SYS_DUMMY;

DAY

星期天全称

select to_char(systimestamp, 'DAY') from SYS_DUMMY;

DY

星期天简称

select to_char(systimestamp, 'DY') from SYS_DUMMY;

DDD

一年中的第几天

select to_char(to_date('2018-01-07', 'YYYY-MM-DD'), 'DDD') from SYS_DUMMY;

DD

当前月中的第几天

select to_char(to_date('2018-01-07', 'YYYY-MM-DD'), 'DD') from SYS_DUMMY;

D

当前周中的第几天

select to_char(to_date('2018-01-07', 'YYYY-MM-DD'), 'D') from SYS_DUMMY;

FF3、

FF6、

FF(默认FF6)

秒的小数部分

select to_char(systimestamp, 'FF3') from SYS_DUMMY;

HH12、

HH24 、

HH(默认HH12)

12小时制/24小时制

select to_char(systimestamp, 'HH,HH12,HH24') from SYS_DUMMY;

MI

时间的分钟数(0 ~ 59)

-

MM

日期的月份(1 ~ 12)

-

MONTH

日期中月份全称

select to_char(systimestamp, 'MONTH, MON') from SYS_DUMMY;

MON

日期中月份简称

-

Q

当前日期的季度(1 ~ 4)

-

SSSSS

一天中已经逝去的秒数(0 ~ 86400 - 1)

-

SS

时间中的秒数(0 ~ 59)

-

WW

当前日期为该年份的week数,即当年的第几周,第一周从当年第一天计算起,每周7天

-

W

当前日期为该月份的week数,即当月的第几周,第一周从当月第一天计算起,每周7天

-

YYYY

四位年份

-

YYY

三位年份,如2018年可以写作018

-

YY

两位年份,如2018年可以写作18

-

Y

一位年份,如2018年可以写作8

select to_char(systimestamp, 'Y') from SYS_DUMMY;

TZH

时区信息的小时数

select to_char(current_timestamp , 'TZH') from SYS_DUMMY;

TZM

时区信息的分钟数

select to_char(current_timestamp , 'TZM') from SYS_DUMMY;

系统同时也对日期类型提供默认的输出格式,如表2。
表2 日期类型默认输出格式

日期类型

默认输出格式

DATETIME

YYYY-MM-DD HH24:MI:SS

TIMESTAMP

YYYY-MM-DD HH24:MI:SS.FF

TIMESTAMP WITH TIME ZONE

YYYY-MM-DD HH24:MI:SS.FF TZH:TZM

TIMESTAMP WITH LOCAL TIME ZONE

YYYY-MM-DD HH24:MI:SS.FF

示例

  • 通过格式控制符的描述,可以用to_char函数指定时期类型的输出格式,如下示例:
    SELECT to_char(sysdate, 'MON-YY-DD') FROM SYS_DUMMY; TO_CHAR(SYSDATE, 'MON-YY-DD') ----------------------------- JAN-18-07 1 rows fetched. SELECT to_char(sysdate, 'MON-YY-DD HH:MI:SS AM') FROM SYS_DUMMY; TO_CHAR(SYSDATE, 'MON-YY-DD HH ------------------------------- JAN-18-07 05:01:15 AM 1 rows fetched.
  • 日期类型默认输出格式参见以下示例:
    SELECT sysdate, systimestamp FROM SYS_DUMMY; SYSDATE SYSTIMESTAMP ---------------------- ---------------------------------------- 2018-01-07 17:18:18 2018-01-07 17:18:18.230000 +08:00 1 rows fetched.
  • 使用格式控制符将一个字符串转化为日期类型:
    SELECT to_date('07-JAN-2018', 'DD-MON-YYYY') FROM SYS_DUMMY; TO_DATE('07-JAN-2018', 'DD-MON-YYYY') ------------------------------------- 2018-01-07 00:00:00 1 rows fetched.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论