Oracle【 查询(当天,月,年)的数据】

Trunc

在oracle中,可利用 trunc函数 查询当天数据,该函数可用于截取时间或者数值,将该函数与 select 语句配合使用可查询时间段数据

  • 查询当天数据
--sysdate是获取系统当前时间函数
--TRUNC函数用于截取时间或者数值,返回指定的值

select * from 表名 where trunc(时间字段名)=trunc(sysdate)
  • 日期处理
--date 为必要参数,是输入的一个date日期值
--fmt 参数可忽略,是日期格式,缺省是表示指定日期的0点,00:00:00

trunc(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) '下个星期早上610分' 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;

请添加图片描述