🚀 Oracle 常用日期操作 SQL
这是一个 Oracle 数据库中常用的日期处理 SQL 集合,按功能分类整理,帮助你快速获取特定日期。以下示例基于 sysdate(当前日期),可替换为其他日期字段。让我们开始吧!📅
📝 日期查询分类
1️⃣ 当天相关
1.1 获取当前日期
select trunc(sysdate) from dual;
📌 示例输出:若今天是
2025-02-28,结果为2025-02-28。
1.2 获取当前时间(精确到秒)
select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual;
⏰ 示例输出:
2025-02-28 15:30:45(假设当前时间)。
1.3 获取昨天
select trunc(sysdate - 1) from dual;
⏪ 示例输出:若今天是
2025-02-28,结果为2025-02-27。
1.4 获取明天
select trunc(sysdate + 1) from dual;
⏩ 示例输出:若今天是
2025-02-28,结果为2025-03-01。
2️⃣ 月度相关
2.1 获取本月 1 号
select trunc(sysdate, 'MM') from dual;
📆 示例输出:若今天是
2025-02-28,结果为2025-02-01。
2.2 获取本月最后一天
select last_day(sysdate) from dual;
🌙 示例输出:若今天是
2025-02-28,结果为2025-02-28。
2.3 获取下月 1 号
select to_char(add_months(sysdate, 1), 'YYYY-MM') || '-01' from dual;
⏳ 示例输出:若今天是
2025-02-28,结果为2025-03-01。
2.4 获取上月最后一天
select last_day(add_months(sysdate, -1)) from dual;
🔙 示例输出:若今天是
2025-02-28,结果为2025-01-31。
3️⃣ 其他周期
3.1 获取本周一
select trunc(sysdate, 'IW') from dual;
🗓️ 示例输出:若今天是
2025-02-28(周五),结果为2025-02-24。
3.2 获取本季度第一天
select trunc(sysdate, 'Q') from dual;
📈 示例输出:若今天是
2025-02-28,结果为2025-01-01。
3.3 获取本年第一天
select trunc(sysdate, 'YYYY') from dual;
🎉 示例输出:若今天是
2025-02-28,结果为2025-01-01。
🔧 使用技巧
trunc(date, format):截断日期到指定精度:'MM':截到月首'IW':截到周一'Q':截到季度首'YYYY':截到年首
add_months(date, n):加减月份,n为负数时向前推。to_char(date, format):格式化日期:YYYY-MM-DD:日期格式HH24:MI:SS:24 小时制时间
- 替换
sysdate:可用to_date('2025-02-28', 'YYYY-MM-DD')指定日期。
评论区