Oracle函数之TRUNC(日期时间截断处理)

864 阅读1分钟

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