Trunc
在oracle中,可利用 trunc函数 查询当天数据,该函数可用于截取时间或者数值,将该函数与 select 语句配合使用可查询时间段数据
- 查询当天数据
--sysdate是获取系统当前时间函数
--TRUNC函数用于截取时间或者数值,返回指定的值select * from 表名 where trunc(时间字段名)=trunc(sysdate)
- 日期处理
--date 为必要参数,是输入的一个date日期值
--fmt 参数可忽略,是日期格式,缺省是表示指定日期的0点,00:00:00trunc(date,[fmt])
- SQL 如下
--日
select * from 表名 where trunc(时间字段名)=trunc(sysdate)--周
select trunc(sysdate, 'd') '本周第一天,周日起' from dual;
select trunc(sysdate, 'day') '本周第一天,周日起' from dual;
select next_day(trunc(sysdate), 'TUESDAY')+12/24 '下个星期中午12点' from dual;
select trunc(least(next_day(sysdate,'saturday'),next_day(sysdate,'sunday')))+(6*60+10)/(24*60) '下个星期早上6点10分' from dual;--月
select trunc(sysdate, 'mm') '当月第一天' from dual;
select trunc(sysdate, 'month') '当月第一天' from dual;
select trunc(last_day(sysdate)+1) '下个月第一天的0点' from dual;--季度
select trunc(sysdate, 'q') '当前季度的第一天' from dual;
select trunc(add_months(sysdate,3), 'Q') -1/24 '当年第一天' from dual;--年
select trunc(sysdate, 'yy') '当年第一天' from dual;
select trunc(sysdate, 'yyyy') '当年第一天' from dual;
select trunc(sysdate, 'year') '当年第一天' from dual;
- 扩展知识
--将小数点右边指定位数后面的截去; select trunc(123.567,2) from dual;--第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0记;select trunc(123.567,-2) from dual;--默认截去小数点后面的部分;select trunc(123.567) from dual;