OracleTRUNC函数使⽤
在订单信息查询时想获取当天产⽣的订单信息,查询了解到可以使⽤Oracle中的TRUNC函数,总结⽤法如下。
⼀、截取时间
语法格式:TRUNC(date[,fmt])
其中:date ⼀个⽇期值;fmt ⽇期格式。
该⽇期将按指定的⽇期格式截取;忽略它则由最近的⽇期截取。
根据当前系统时间获取,⽰例:
SELECT TRUNC(SYSDATE) FROM DUAL;--2021/2/13,返回当前时间
SELECT TRUNC(SYSDATE,'YY') FROM DUAL;--2021/1/1,返回当年第⼀天
SELECT TRUNC(SYSDATE,'MM') FROM DUAL;--2021/2/1,返回当⽉的第⼀天
SELECT TRUNC(SYSDATE,'D') FROM DUAL;--2021/2/12,返回当前星期的第⼀天,即星期天
SELECT TRUNC(SYSDATE,'DD') FROM DUAL;--2021/2/13,返回当前⽇期,今天是2021/2/13
SELECT TRUNC(SYSDATE ,'HH24') FROM DUAL;--2021/2/13 15:00:00,返回本⼩时的开始时间
SELECT TRUNC(SYSDATE ,'MI') FROM DUAL;--2021/2/13 15:13:00,返回本分钟的开始时间
执⾏结果如下:
根据输⼊时间获取,⽰例:
SELECT  TRUNC(TO_DATE('2021-06-21 18:00:00','YYYY-MM-DD HH24:MI:SS'),'YYYY') FROM DUAL ;--返回当年第⼀天
SELECT  TRUNC(TO_DATE('2021-06-21 18:00:00','YYYY-MM-DD HH24:MI:SS'),'MM') FROM DUAL ; --返回当⽉第⼀天
SELECT  TRUNC(TO_DATE('2021-06-21 18:00:00','YYYY-MM-DD HH24:MI:SS'),'DD') FROM DUAL ;--返回当前年⽉
SELECT  TRUNC(TO_DATE('2021-06-21 18:00:00','YYYY-MM-DD HH24:MI:SS'),'D') FROM DUAL ; --
返回当前星期的第⼀天(星期⽇) SELECT  TRUNC(TO_DATE('2021-06-21 18:12:12','YYYY-MM-DD HH24:MI:SS'),'HH') FROM DUAL ;--返回当前⽇期截取到⼩时,分秒补0 SELECT  TRUNC(TO_DATE('2021-06-21 18:12:12','YYYY-MM-DD HH24:MI:SS'),'MI') FROM DUAL ;--返回当前⽇期截取到分,秒补0
执⾏结果如下:
⼆、截取数值
语法格式:TRUNC(number[,decimals])
其中: number 待做截取处理的数值;decimals 指明需保留⼩数点后⾯的位数,可选项,忽略它则截去所有的⼩数部分。注意:截取时并不对数据进⾏四舍五⼊。
⽰例:
SELECT  TRUNC(888.666) FROM  DUAL T; --默认取整
SELECT  TRUNC(888.666,2) FROM  DUAL T;
SELECT  TRUNC(888.666,-2) FROM  DUAL T;--负数表⽰从⼩数点左边开始截取2位
执⾏结果如下:
拓展
获取⼀个⼩时内⽣成的订单:
SELECT*FROM ORDER T WHERE SYSDATE-1/24<= T.CREATE_DATE;
获取两个⼩时内⽣成的订单(其余以此类推):
SELECT*FROM ORDER T WHERE SYSDATE-1/12<= T.CREATE_DATE;
获取⼆⼗四⼩时内⽣成的订单:
SELECT*FROM ORDER T WHERE SYSDATE-1<= T.CREATE_DATE;
truncated在存储过程中怎么使用获取当天⽣成的订单(使⽤TRUNC函数):
SELECT*FROM ORDER T WHERE TRUNC(T.CREATE_DATE) = TRUNC(SYSDATE);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。