admin 管理员组文章数量: 887021
2023年12月16日发(作者:the forest)
trunc函数在oracle的用法
一、概述
trunc函数是Oracle SQL中的一个常用函数,用于截取日期或数值的整数部分。它可以将一个日期截取到指定精度,例如年、月、日等,并返回截取后的日期。同时,它也可以将一个数值截取到指定精度,例如整数、十位、百位等,并返回截取后的数值。
二、语法
trunc函数的语法如下:
TRUNC(date, [fmt]) -- 截取日期
TRUNC(number, [fmt]) -- 截取数值
其中,date表示需要截取的日期;number表示需要截取的数值;fmt表示需要保留的精度。
三、参数说明
1. date参数
date参数可以是DATE类型或TIMESTAMP类型。如果date参数为DATE类型,则其时间部分默认为00:00:00;如果date参数为TIMESTAMP类型,则其时间部分与原始时间相同。
2. number参数
number参数可以是NUMBER类型或VARCHAR2类型。如果number参数为VARCHAR2类型,则必须是能够转换成NUMBER类型的字符串。
3. fmt参数
fmt参数用于指定保留的精度。它可以是以下任意一种:
(1)YYYY:保留到年份级别;
(2)MM:保留到月份级别;
(3)DD:保留到天级别;
(4)HH24:保留到小时级别;
(5)MI:保留到分钟级别;
(6)SS:保留到秒级别;
(7)FF:保留到毫秒级别。
四、示例
1. 截取日期
(1)截取到年份级别
SELECT TRUNC(SYSDATE, 'YYYY') FROM DUAL;
输出结果为:2022/01/01 00:00:00
这里的SYSDATE表示当前系统时间,'YYYY'表示截取到年份级别。
(2)截取到月份级别
SELECT TRUNC(SYSDATE, 'MM') FROM DUAL;
输出结果为:2022/01/01 00:00:00
这里的SYSDATE表示当前系统时间,'MM'表示截取到月份级别。
(3)截取到天级别
SELECT TRUNC(SYSDATE, 'DD') FROM DUAL;
输出结果为:2022/01/11 00:00:00
这里的SYSDATE表示当前系统时间,'DD'表示截取到天级别。
2. 截取数值
(1)截取到整数位
SELECT TRUNC(1234.5678) FROM DUAL;
输出结果为:1234
这里的1234.5678表示需要被截取的数值。
(2)截取到十位
SELECT TRUNC(1234.5678, -1) FROM DUAL;
输出结果为:1230
这里的1234.5678表示需要被截取的数值,-1表示要保留十位。
(3)截取到百位
SELECT TRUNC(1234.5678, -2) FROM DUAL;
输出结果为:1200
这里的1234.5678表示需要被截取的数值,-2表示要保留百位。
五、注意事项
1. 如果fmt参数不指定,则默认截取到天级别。
2. 如果date参数为NULL,则返回NULL。
3. 如果number参数为NULL或无法转换成NUMBER类型,则返回NULL。
4. 如果fmt参数不是有效的格式,则会抛出ORA-01821异常。
5. TRUNC函数可以与其他函数一起使用,例如TO_CHAR、TO_DATE等。
版权声明:本文标题:trunc函数在oracle的用法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702717900h427929.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论