oracle查询当天的数据(当年,当月,当日)

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

--sysdate是获取系统当前时间函数
--TRUNC函数用于截取时间或者数值,返回指定的值
select * from 表名 where trunc(时间字段名)=trunc(sysdate)

1.日期处理:

TRUNC(date,[fmt])

--date 为必要参数,是输入的一个date日期值,
--fmt 参数可忽略,是日期格式,缺省时表示指定日期的0点,00:00:00。

2.数值处理:

TRUNC(number,[decimals])
--number 为必要参数,是输入的一个number数值
--decimals 参数可忽略,是要截取的位数,缺省时表示截掉小数点后边的值。

3.具体sql如下:

--年
select trunc(sysdate, 'yy') '当年第一天' from dual;
select trunc(sysdate, 'yyyy') '当年第一天' from dual;
select trunc(sysdate, 'year') '当年第一天' from dual;

--季度
select trunc(sysdate, 'q') '当前季度的第一天' from dual;
select trunc(add_months(sysdate,3), 'Q') -1/24 '当年第一天' 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, '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;

4.扩展知识:


--将小数点右边指定位数后面的截去; 

select trunc(123.567,2) from dual;

--第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0记;

select trunc(123.567,-2) from dual;

--默认截去小数点后面的部分;

select trunc(123.567) from dual;
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值