Oracle时间日期操作汇总

0 下载量 163 浏览量 更新于2024-08-30 收藏 91KB PDF 举报
本文主要总结了Oracle数据库中关于时间日期的操作方法,包括对当前时间的加减、获取特定日期以及计算工作日等实用技巧。 在Oracle数据库中,时间日期的处理是非常常见且重要的操作。文章列举了一系列的示例来解释这些操作: 1. 基于当前时间(sysdate)的延迟: - `sysdate + (5/24/60/60)` 用于延迟5秒。 - `sysdate + 5/24/60` 用于延迟5分钟。 - `sysdate + 5/24` 用于延迟5小时。 - `sysdate + 5` 用于延迟5天。 2. 使用 `add_months` 函数进行月份级别的加减: - `add_months(sysdate, -5)` 用于延迟5个月。 - `add_months(sysdate, -5*12)` 用于延迟5年。 3. 获取特定日期: - `select last_day(add_months(sysdate, -1)) from dual;` 可以得到上个月的最后一天。 - `select trunc(add_months(sysdate,1), 'MM') - 1` 可以得到本月的第一秒。 4. 获取本周星期一的日期: - `select trunc(sysdate, 'day') + 1 from dual;` 5. 计算日期间隔: - `select ceil(sysdate - trunc(sysdate, 'year')) from dual;` 返回年初至今的天数。 - `select to_char(sysdate, 'fmww') from dual;` 显示今天是今年的第几周。 - `SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW')+1 AS "weekOfMon" FROM dual;` 显示今天是本月的第几周。 6. 获取月份和年的天数: - `select to_char(last_day(SYSDATE), 'dd') days from dual;` 显示本月的天数。 - `select add_months(trunc(sysdate, 'year'), 12) - trunc(sysdate, 'year') from dual;` 计算今年的天数。 7. 获取下个星期一的日期: - `SELECT next_day(sysdate, 'monday') FROM dual;` 8. 计算工作日的方法: - 示例中创建了一张表`t`,并插入了一些日期范围,用于计算工作日。这通常涉及到更复杂的逻辑,比如排除周末或法定节假日。 这些示例展示了Oracle数据库在时间日期操作上的灵活性,帮助开发者在处理时间相关的业务逻辑时更加得心应手。理解并熟练运用这些函数和方法,能有效提高SQL查询的效率和准确性。