Oracle 查询今日、昨日、本周、本月和本季度的所有记录

Oracle 查询今日、昨日、本周、本月和本季度的所有记录


一、字段类型为date

1.今日
 select * from 表名 where to_char(字段名,'yyyy-MM-dd')=to_char(sysdate,'yyyy-MM-dd') 

2.昨日

select * from  表名 where to_char(字段名,'yyyy-MM-dd')= to_char(sysdate-1,'yyy-MM-dd') 

3.本周
 select * from 表名 where to_char(字段名,'iw')=to_char(sysdate,'iw') and to_char(字段名,'yy')=to_char(sysdate,'yy')
4.本月 
 select * from 表名 where to_char(字段名,'yyyy-MM')=to_char(sysdate,'yyyy-MM') 
5.本季度 
 select * from 表名 where to_char(字段名,'q')=to_char(sysdate,'q') and to_char(字段名,'yy')=to_char(sysdate,'yy')

 

  二、 字段类型为varchar2,格式要与格式化的样式匹配


1.今日 
select * from 表名 where to_char(to_date(字段名,'yyyy-MM-dd'),'yyyy-MM-dd')=to_char(sysdate,'yyyy-MM-dd')

2.昨日

select * from 表名 where to_char(to_date(字段名,'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd')=to_char(sysdate-1,'yyyy-MM-dd') 
3.本周 
select * from 表名 where to_char(to_date(字段名,'yyyy-MM-dd hh24:mi:ss'),'iw')=to_char(sysdate,'iw') and to_char(to_date(字段名,'yyyy-MM-dd hh24:mi:ss'),'yy')=to_char(sysdate,'yy')
4.本月 
select * from 表名 where to_char(to_date(字段名,'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM')=to_char(sysdate,'yyyy-MM')
5.本季度 
select * from 表名 where to_char(to_date(字段名,'yyyy-MM-dd hh24:mi:ss'),'q')=to_char(sysdate,'q') and to_char(to_date(字段名,'yyyy-MM-dd hh24:mi:ss'),'yy')=to_char(sysdate,'yy')

备注:直接复制文章中的sql在PL/SQL中执行可能报如下错误

如果出现上图所示的Error,可以将PL/SQL中下面显示红色波浪线的空格删除,重新敲空格

造成如上的原因可能是CSDN的文本编辑器的空格编码和PL/SQL的空格编码不一致

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值