目 录CONTENT

文章目录

Oracle 常用日期操作 SQL

BKUN
2021-11-13 / 0 评论 / 0 点赞 / 2,099 阅读 / 658 字

🚀 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') 指定日期。
0

评论区