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

GBase 8s TRUNC()函数的用法

liaosnet 2020-05-12
3367

TRUNC日期、时间

TRUNC函数为指定元素而截去的日期值。
其具体的语法格式如下:

TRUNC(date/datetime[,fmt])

其中:
date/datetime 是日期或者日期时间值
fmt 日期格式字符串
对于DATE类型

格式字符串 对返回值的影响 示例 结果
‘YEAR’ 截断到该年之初。month 和 day 值都为 01 TRUNC(DATE(‘2020-05-12’), ‘YEAR’) 2020-01-01
‘MONTH’ 截断到该月之初。day 值为 01 TRUNC(DATE(‘2020-05-12’), ‘MONTH’) 2020-05-01
‘DD’ 返回 date 参数的 DATE 值 TRUNC(DATE(‘2020-05-12’), ‘DD’) 2020-05-12
‘DAY’ 返回当年星期的第一天(星期日)的日期 TRUNC(DATE(‘2020-05-12’), ‘DAY’) 2020-05-10
返回 date 参数对应的int值,等同date::int TRUNC(DATE(‘2020-05-12’)) 43962

对于DATETIME类型

格式字符串 对返回值的影响 示例 结果
‘YEAR’ 截断到该年之初。month、day、hour 和 minute 值截断到 01-01 00:00 TRUNC( DATETIME(2020-05-12 16:15:10) YEAR to SECOND, ‘YEAR’) 2020-01-01 00:00:00
‘MONTH’ 截断到该月的第一天之初。hour 和 minute 值截断到 00:00 TRUNC( DATETIME(2020-05-12 16:15:10) YEAR to SECOND, ‘MONTH’) 2020-05-01 00:00:00
‘DD’ 截断到同一天之初(00:00 = 午夜) TRUNC( DATETIME(2020-05-12 16:15:10) YEAR to SECOND, ‘DD’) 2020-05-12 00:00:00
‘DAY’ 返回当年星期的第一天(星期日)的午夜 TRUNC( DATETIME(2020-05-12 16:15:10) YEAR to SECOND, ‘DAY’) 2020-05-10 00:00:00
‘HH’ 截断到该小时之初。minute 值截断为零 TRUNC( DATETIME(2020-05-12 16:15:10) YEAR to SECOND, ‘HH’) 2020-05-12 16:00:00
‘MI’ 截断到最近的分钟之初。对于所有这些格式字符串,丢弃小于 minute 的时间单位 TRUNC( DATETIME(2020-05-12 16:15:10) YEAR to SECOND, ‘MI’) 2020-05-12 16:15:00
同等’DD’ TRUNC( DATETIME(2020-05-12 16:15:10) YEAR to SECOND) 2020-05-12 00:00:00

TRUNC数值

TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
其具体的语法格式如下

TRUNC(number[,factor])

其中:
number 待做截取处理的数值
factor 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分

下面是该函数的使用情况:
TRUNC(31.4159, 3) = 31.415
TRUNC(31.4159) = 31
TRUNC(31.4159, -1) = 30

注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推。

示例:

-- 今天2020-05-12是当年的第几天 SELECT DATE('2020-05-12') - TRUNC(DATE('2020-05-12'), 'YEAR') FROM DUAL;

结果:132

-- 本周一是哪天(星期天 + 1天) SELECT TRUNC(DATE('2020-05-12'), 'DAY') + 1 FROM DUAL;

结果:2020-05-11

-- 本周是今年第几周(根据实际需要选择使用CEIL还是TRUNC) SELECT CEIL((DATE('2020-05-12') - TRUNC(TRUNC(DATE('2020-05-12'), 'YEAR'), 'DAY'))/7) FROM DUAL;

结果:20

最后修改时间:2020-05-12 16:59:57
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论