在 Oracle 11g 中,TRUNC(sysdate) 是一个日期截断函数,作用是去除当前系统时间的时间部分,只保留日期部分,将时间统一截断到当天的**00:00:00(午夜12点)**。
例如:
- 如果当前系统时间是
2025-09-19 15:30:45,那么TRUNC(sysdate)的结果是2025-09-19 00:00:00。 - 即使当前时间是
2025-09-19 23:59:59,TRUNC(sysdate)仍然返回2025-09-19 00:00:00。
常见用法:
-
筛选当天数据:
-- 查询今天0点到明天0点之间的数据 WHERE 时间字段 >= TRUNC(sysdate) AND 时间字段 < TRUNC(sysdate) + 1 -- +1 表示加1天(即次日0点) -
计算其他时间点: 结合数值运算可灵活得到特定时间,例如:
TRUNC(sysdate) + 1→ 明天0点TRUNC(sysdate) + 8/24→ 今天8点(8小时/24小时)TRUNC(sysdate) - 1→ 昨天0点
-
截断到更高时间单位(需指定格式):
TRUNC(sysdate, 'MM')→ 当月1日0点(如2025-09-01 00:00:00)TRUNC(sysdate, 'YYYY')→ 当年1月1日0点(如2025-01-01 00:00:00)
这个函数在处理日期范围查询时非常实用,能简化时间条件的编写。









