ITPub博客

首页 > 数据库 > > GaussDB 100 时间间隔类型简介

GaussDB 100 时间间隔类型简介

作者:GaussDB_数据库 时间:2020-02-21 10:14:39 0 删除 编辑

时间间隔是指两个时间点之间的差。例如雇员从入职到现在工作了多少年和月,上一次交易记录到现在间隔了多少天、小时、分、秒等。GaussDB 100支持两种时间间隔数据类型:INTERVAL YEAR TO MONTH和INTERVAL DAY TO SECOND,可以分别简写为YMINTERVAL、DSINTERVAL。

INTERVAL YEAR TO MONTH

语法:

INTERVAL YEAR[(n)] TO MONTH
功能:存储一个若干年若干月的时间间隔。

取值范围:[-9999-11, +9999-11]

  • n的取值范围是[0,4],表示年的精度,默认值为2。

  • INTERVAL YEAR TO MONTH的最小取值为-9999-11,表示时间差为负9999年11月; 同理,最大取值+9999-11表示时间差9999年11月。

占用空间:4字节。

示例:

指定一个INTERVAL YEAR TO MONTH列的定义:
ymitvl_col_name  INTERVAL YEAR [(year_precision)] TO MONTH
  • year_precision指示了YEAR域的精度,即表示YEAR的最大有效数字个数。

  • 若设置year_precision为2,则表示YEAR域的最大值为99,若用户指定的值超出这个范围将会报错。

  • year_precision最小可以设置为0,最大可以设置为4,默认值为2。若用户输入超出指定精度则报错。

INTERVAL DAY TO SECOND

语法:

INTERVAL DAY[(n1)] TO SECOND [(n2)]

功能:存储一个若干天(包括天、时、分、秒、微秒)的时间间隔。

取值范围:[-9999999 23:59:59.999999,+9999999 23:59:59.999999]

  • n1取值范围是[0,7],表示天的精度,默认值为2。

  • n2取值范围是[0,6],表示秒后面的精度,不指定时默认为6。

  • INTERVAL DAY TO SECOND的最小取值为-9999999 23:59:59.999999,表示时间差负999999天23小时59分钟59.999999秒。

占用空间:8字节。

示例:

指定一个INTERVAL DAY TO SECOND列的定义:
dsitvl_col_name  INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)]
  • day_precision表示DAY域的精度,效果同year_precision。

  • 其最小值可以设置为0,最大可以设置为7,默认值为2。

  • fractional_seconds_precision表示指定秒SECOND域小数点后面的精度,其最小值可以设置为0,最大可以设置为6,默认值为6。

  • SECOND域的小数部分输入允许超出指定精度,但在输入后会按照指定精度用四舍五入规则进行截取,使得结果满足指定精度要求。

    例如,指定fractional_seconds_precision为6,对于输入'1 12:12:12.666666666666'将会被截取为'1 12:12:12.666667'。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3154089/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19318