Oracle获取日期查询处理&近一年的所有月份&一个月的全部日期&当前年至今的所有月份

一个月的全部日期

SELECT to_char(TRUNC(to_date(to_char(sysdate,'yyyy-mm')||'-01','yyyy-MM-dd'), 'MM') + ROWNUM - 1, 'yyyy-MM-dd') as day 
FROM dual
connect by  to_char(last_day(to_date(to_char(sysdate,'yyyy-mm')||'-01','yyyy-MM-dd')), 'dd') >= ROWNUM

  

 

 

查询近一年的所有月份

select to_char(add_months(sysdate, -t.rn), 'yyyy-mm')
from dual a, (select rownum - 1 rn from dual connect by rownum <= 12) t
 order by to_char(add_months(sysdate, -t.rn), 'yyyy-mm')

  或者

select to_char(add_months(sysdate,-ROWNUM+1), 'yyyy-MM') day from dual  connect by  12 >= ROWNUM

  

 

 

查询当前年至今的所有月份

select to_char(add_months(sysdate, -t.rn), 'yyyy-mm')
from dual a, (select rownum - 1 rn from dual connect by rownum <= 12) t
 where to_char(add_months(sysdate, -t.rn), 'yyyy') =to_char(sysdate, 'yyyy')
 order by to_char(add_months(sysdate, -t.rn), 'yyyy-mm')

  

 

 

获取当前时间90天内连续日期

select to_char(add_days(sysdate,-ROWNUM+1), 'yyyy-MM-dd') day 
from dual  connect by  90 >= ROWNUM

  

查询当前时间

查询当前时间
select sysdate from dual;

查询当前时间并格式化日期
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi') from dual;

  

日期格式化

yyyy 可换成其他格式:MM、dd、Q、iw
MM:月 ---------------dd:日
Q:季度 ---------------- iw:周

select to_char(sysdate, 'yyyy' ) from dual; --年


当前时间减少日期

MINUTE 可替换成其他字段:hour 、day 、month 、year

1分钟内的数据
select sysdate,sysdate - interval '1' MINUTE from dual;
1
2
查询这个月的第一天/最后一天
第一天
SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1)) + 1 FROM DUAL;

最后一天
SELECT LAST_DAY(ADD_MONTHS(SYSDATE, 0)) FROM DUAL;

查询连续日期的统计个数

一组数据,根据MN来统计连续日期的天数

 

 统计结果应该为:4、2、2、2、5

 

 利用开窗思想以及辅助列的方式新增出一列来帮我们记录哪些日期才是连续的

--去重MN,分别取出连续日期的开始时间和结束时间,统计个数
 select distinct mn,min(intime) ksrq,max(intime) jsrq,count(*) cs from
	(
		SELECT mn,intime,XH,trunc(intime)-xh as  rq2 --连续的日期得出的辅助列是相同
			FROM
			(	-- 使用PARTITION BY 来帮助生成序号
			SELECT mn,intime,ROW_NUMBER()OVER(PARTITION BY mn ORDER BY intime) XH
			FROM YQHS.QY_ALARMINFO --表
			where intime <sysdate and intime >sysdate-11 --相应的条件
			)
	)group by mn,rq2;--根据MN编号和辅助列统计

  输出结果:和预想的结果一致

 

 原文地址:https://blog.csdn.net/weixin_41451078/article/details/112919837

posted @ 2023-03-03 14:09  红尘沙漏  阅读(2485)  评论(0编辑  收藏  举报