【oracle】oracle 常用日期操作

1. 简单查询

说明 查询 sql
日期格式化 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
本月第一天 select to_char(trunc(sysdate, 'mm'),'yyyy-mm-dd') from dual;
本月最后一天 select to_char(last_day(trunc(sysdate)),'yyyy-mm-dd') from dual;
上月第一天 select to_char(last_day(add_months(trunc(sysdate),-2))+1,'yyyy-mm-dd') from dual;
上月最后一天 select to_char(last_day(add_months(trunc(sysdate),-1)),'yyyy-mm-dd') from dual;
下月第一天 SELECT to_char(last_day(SYSDATE) + 1,'yyyy-mm-dd') FROM dual;
下月最后一天 select to_char(last_day(add_months(trunc(sysdate),1)),'yyyy-mm-dd') from dual;

2. 查询两个日期范围内所有日期列表

sql 复制代码
WITH xrange AS ( SELECT 
			to_date( '2025-05-03', 'yyyy-mm-dd' ) AS start_date, 
			to_date( '2025-06-07', 'yyyy-mm-dd' ) AS end_date 
			FROM dual ) 
SELECT
	t.GEN_DATE AS start_date,-- 开始时间
	t.GEN_DATE AS end_date -- 结束时间
FROM
	( SELECT to_char( start_date + LEVEL - 1, 'YYYYMMDD' ) AS gen_date FROM xrange CONNECT BY start_date + LEVEL - 1 <= end_date ) t;

3. 查询两个月份范围内所有月份列表

sql 复制代码
WITH xrange AS ( SELECT 
	to_date( '2024-01' || '-01', 'yyyy-mm-dd' ) AS start_date, 
	to_date( '2025-03' || '-01', 'yyyy-mm-dd' ) AS end_date FROM dual ) 
SELECT
	t.GEN_DATE AS start_month,-- 开始时间
	t.GEN_DATE AS end_month -- 结束时间
FROM
	(
	SELECT
		to_char( ADD_MONTHS( start_date, LEVEL - 1 ), 'YYYYMM' ) AS gen_date 
	FROM
		xrange CONNECT BY LEVEL <= MONTHS_BETWEEN( TRUNC( end_date, 'MONTH' ), TRUNC( start_date, 'MONTH' ) ) + 1 
	) t;

4. 查询指定月份的所有日期列表

sql 复制代码
WITH xrange AS (
	SELECT
		to_date( '202501' || '01', 'yyyymmdd' ) AS start_date,
		last_day( to_date( '202501' || '01', 'yyyymmdd' ) ) AS end_date 
	FROM
		dual 
	) SELECT
	t.GEN_DATE AS start_date,-- 开始时间
	t.GEN_DATE AS end_date -- 结束时间
FROM
	( SELECT to_char( start_date + LEVEL - 1, 'YYYYMMDD' ) AS gen_date FROM xrange CONNECT BY start_date + LEVEL - 1 <= end_date ) t;
相关推荐
jnrjian6 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
TTc_6 天前
oracle中的union和union all有什么区别?
数据库·oracle
山峰哥6 天前
吃透 SQL 优化:告别慢查询,解锁数据库高性能
服务器·数据库·sql·oracle·性能优化·编辑器
南 阳6 天前
Python从入门到精通day37
数据库·python·oracle
轩情吖6 天前
MySQL库的操作
android·数据库·mysql·oracle·字符集·数据库操作·编码集
脱发的老袁7 天前
【数据库】Oracle手动清理归档日志
数据库·oracle
jnrjian7 天前
Oracle 共享池 库缓存下的 Library Cache Lock
数据库·缓存·oracle
新缸中之脑7 天前
在Reddit上探索未满足的需求
数据库·oracle
light blue bird7 天前
产线多并发客户端指令操作场景组件
jvm·oracle·.net·winform
坐吃山猪7 天前
Neo4j04_数据库事务
数据库·oracle·neo4j