Oracle函数之TRUNC(日期时间截断处理)
函数说明
TRUNC(d [, fmt])
d: 作为参考的指定日期时间
fmt: 截断的格式化模式
将参考的指定日期时间按指定的格式化模式进行截断处理
格式化模式
| 格式化模式 | 说明 |
|---|---|
| syyyy yyyy year syear yyy yy y | 截取本年的第一天 |
| iyyy iy iy i | 截取本年的第一个周一 |
| q | 截取本季度的第一天 |
| month mon mm rm | 截取本月的第一天 |
| ww | 如果本年第一天是周一,则截取在今天及今天之前最近的一个周一 |
| iw | 截取在今天及今天之前最近的一个周一 |
| w | 如果本月的第一天是周一,则截取在今天及今天之前最近的一个周一 |
| ddd dd j | 截取到日(本日) |
| day dy d | 截取到本周第一天,周日为第一天 |
| hh hh12 hh24 | 截取到小时(当前小时,零分零秒) |
| mi | 截取到分(当前分,零秒) |
案例
截取到分(当前分,零秒)
select trunc(sysdate,'mi') from dual;
-- 2021/12/6 14:40:00
截取到小时(当前小时,零分零秒)
select trunc(sysdate,'hh24') from dual;
-- 2021/12/6 14:00:00
截取到日(本日)
select trunc(sysdate,'dd') from dual;
-- 2021/12/6
截取到本周第一天,周日为第一天
select trunc(sysdate,'d') from dual;
-- 2021/12/5
截取到月(本月的第一天)
select trunc(sysdate, 'mm') from dual;
-- 2021/12/1
截取到季度(本季度的第一天)
select trunc(sysdate,'q') from dual;
-- 2021/10/1
截取到年(本年的第一天)
select trunc(sysdate,'yyyy') from dual;
-- 2021/1/1