【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;
相关推荐
oradh6 小时前
Oracle 11.2.0.1版本升级至11.2.0.4_单机环境
数据库·oracle·oracle11g·oracle升级
anzhxu6 小时前
QT数据库(三):QSqlQuery使用
数据库·qt·oracle
德彪稳坐倒骑驴6 小时前
Oracle 11g安装
数据库·oracle
想七想八不如114086 小时前
数据库--样题复习
数据库·sql·oracle
java修仙传9 小时前
MySQL 事务隔离级别详解
数据库·mysql·oracle
Irissgwe9 小时前
MySQL存储过程和触发器专题
数据库·mysql·oracle
执笔画情ora11 小时前
oracle数据库优化-表碎片优化性能。
数据库·oracle
Hvitur11 小时前
软考架构师【第六章】数据库设计基础知识
数据库·oracle
养生技术人11 小时前
Oracle OCP认证考试题目详解082系列第5题
运维·数据库·sql·oracle·开闭原则
码云数智-园园16 小时前
坚如磐石:数据库事务ACID特性的实现奥秘
数据库·oracle