ORACLE 当月、本周、当年SQL查询

23 篇文章 0 订阅
10 篇文章 0 订阅

当月数据

select from table       

where t.create_time >=trunc(sysdate'MM')   and t.create_time<=last_day(sysdate   


create_time为你要查询的时间  

 

当年数据

select from table     

where t.create_time >=trunc(sysdate,'YYYY' 

and t.create_time<=add_months(trunc(sysdate,'YYYY'),12)-1  

 

本周(国外周日为一个星期第一天)

where t.create_time >=trunc(sysdate,'day')+1 and t.create_time<=trunc(sysdate,'day')+6  

  

本周(国内周一为一个星期第一天)

where  t.create_time  >=trunc(next_day(sysdate- 8 , 1 )+ 1 and  t.create_time<=trunc(next_day(sysdate- 8 , 1 )+ 7 )+ 1  

当天 
to_date(ct.CREATE_DATE,'yyyy-mm-dd hh24:mi:ss') between
 to_date(to_char(sysdate,'yyyy-mm-dd') || ' 00:00:01','yyyy-mm-dd hh24:mi:ss') and
to_date(to_char(sysdate,'yyyy-mm-dd') || ' 23:59:59','yyyy-mm-dd hh24:mi:ss')


Oracle 
字段类型为varchar2,格式要与格式化的样式匹配 
当天 
select * from 表名 where to_char(to_date(字段名,'yyyy-mm-dd hh24:mi:ss'),'dd')=to_char(sysdate,'dd') 
当周 
select * from 表名 where to_char(to_date(字段名,'yyyy-mm-dd hh24:mi:ss'),'iw')=to_char(sysdate,'iw') 
当月 
select * from 表名 where to_char(to_date(字段名,'yyyy-mm-dd hh24:mi:ss'),'mm')=to_char(sysdate,'mm') 
当季度 
select * from 表名 where to_char(to_date(字段名,'yyyy-mm-dd hh24:mi:ss'),'q')=to_char(sysdate,'q') 

字段类型为date 
当天 
select * from 表名 where to_char(字段名,'dd')=to_char(sysdate,'dd') 
当周 
select * from 表名 where to_char(字段名,'iw')=to_char(sysdate,'iw') 
当月 
select * from 表名 where to_char(字段名,'mm')=to_char(sysdate,'mm') 
当季度 
select * from 表名 where to_char(字段名,'q')=to_char(sysdate,'q') 


SQL 
当天 
select * from 表名 where DATEPART(dd,字段名) = DATEPART(dd, GETDATE()) and DATEPART(mm, 字段名) = DATEPART(mm, GETDATE()) and DATEPART(yy, 字段名) = DATEPART(yy, GETDATE()) 
当周 
select * from 表名 where DATEPART(wk, 字段名) = DATEPART(wk, GETDATE()) and DATEPART(yy, 字段名) = DATEPART(yy, GETDATE()) 
当月 
select * from 表名 where DATEPART(mm, 字段名) = DATEPART(mm, GETDATE()) and DATEPART(yy, 字段名) = DATEPART(yy, GETDATE()) 
当季度 
select * from 表名 where DATEPART(qq, 字段名) = DATEPART(qq, GETDATE()) and DATEPART(yy,字段名) = DATEPART(yy, GETDATE()) 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以使用以下Oracle SQL语句来查询当月的最后一天: ``` SELECT LAST_DAY(SYSDATE) AS LAST_DAY FROM DUAL; ``` 其中,`SYSDATE`是Oracle内置函数,用于返回当前系统日期和时间。 `LAST_DAY`是另一个内置函数,用于返回给定日期所在月份的最后一天。 ### 回答2: 要查询当月的最后一天,可以使用Oracle数据库中的函数来实现。 首先,可以使用`SYSDATE`函数获取当前日期,然后使用`LAST_DAY`函数获取该日期所在月份的最后一天。 以下是查询当月最后一天的SQL语句: ```sql SELECT LAST_DAY(SYSDATE) AS 最后一天 FROM dual; ``` 将该SQL语句执行后,即可得到当月的最后一天。 此外,还可以通过`TRUNC`函数将日期截断到月份的开头,然后使用`ADD_MONTHS`函数将日期加上一个月,并减去一天,从而获取当月的最后一天。 以下是另一种查询当月最后一天的SQL语句: ```sql SELECT TRUNC(SYSDATE, 'MONTH') + INTERVAL '1' MONTH - INTERVAL '1' DAY AS 最后一天 FROM dual; ``` 这两种方法都可以有效地查询到当前月份的最后一天。 ### 回答3: 在Oracle中,可以使用如下的SQL语句查询当月的最后一天: SELECT LAST_DAY(SYSDATE) as 最后一天 FROM dual; 在这个SQL语句中,LAST_DAY函数被用来找到给定日期的当月最后一天。SYSDATE是Oracle中的一个系统函数,返回当前日期和时间。 通过将SYSDATE作为LAST_DAY函数的参数,我们可以找到当月的最后一天。这个查询将返回一个名为“最后一天”的结果列,其中包含当前月份的最后一天。 我们可以使用FROM子句中的虚拟表dual来执行这个查询,因为它只返回一个行。dual表是Oracle中的一个特殊表,用于执行从没有实际数据的表中获取数据的查询。 所以,以上的SQL查询将返回当前月份的最后一天作为结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值