【历史最全】oracle 获取相应时间 (本周、上周、本月、上月、最近7、30、90天)

简介: 在我们使用Oracle数据库的时候,经常会遇到获取相应时间的需求,更甚者,有些涉及写存储过程的兄弟们更是频繁使用到。为了使用起来更加便利,特别留存此记录,便于之后查看。以下SQL均可执行,因为访问的是dual表,所以不需要创建表就能完成调试。

时间段查询


获取本周整个时间段

SELECT TRUNC(SYSDATE,'iw') - 1 + ROWNUM FROM DUAL CONNECT BY ROWNUM <= 7

获取上周整个时间段

SELECT TRUNC(SYSDATE,'iw') - 8 + ROWNUM FROM DUAL CONNECT BY ROWNUM <= 7

获取本月整个时间段

SELECT TRUNC(SYSDATE, 'mm') - 1 + ROWNUM FROM DUAL CONNECT BY ROWNUM <= TO_CHAR(LAST_DAY(SYSDATE),'dd')

获取上月整个时间段

SELECT TRUNC(ADD_MONTHS(SYSDATE, -1), 'month') - 1 + ROWNUM FROM DUAL CONNECT BY ROWNUM <= TO_CHAR(LAST_DAY(TRUNC(ADD_MONTHS(SYSDATE, -1), 'month')),'dd')

获取最近7、30、90天的整个时间段

SELECT TRUNC(SYSDATE, 'dd') - ROWNUM AS day FROM DUAL CONNECT BY ROWNUM <= 7 (可自行设置)


时间点查询


获取本周一时间

SELECT TRUNC(SYSDATE, 'iw') FROM DUAL

获取本周末时间

SELECT TRUNC(SYSDATE, 'iw') + 6 FROM DUAL

获取上周一时间

SELECT TRUNC(SYSDATE, 'iw')  - 7 FROM DUAL

获取上周末时间

SELECT TRUNC(SYSDATE, 'iw')  - 1 FROM DUAL

获取本月的第一天

SELECT TRUNC(SYSDATE, 'mm') FROM DUAL

获取本月的最后一天

SELECT TRUNC(ADD_MONTHS(SYSDATE, -1), 'month') FROM DUAL

7、30、90天前时间

SELECT SYSDATE - 7 FROM DUAL (可自行调节)

SELECT SYSDATE - 30 FROM DUAL (可自行调节)

SELECT SYSDATE - 90 FROM DUAL (可自行调节)

目录
相关文章
|
Oracle 关系型数据库 数据安全/隐私保护
oracle学习25-手工删除oracle归档日志后操作步骤 和修改用户默认解锁时间
oracle学习25-手工删除oracle归档日志后操作步骤 和修改用户默认解锁时间
165 0
|
Oracle 关系型数据库 数据安全/隐私保护
oracle学习22-ora-01691和修改密码过期时间
oracle学习22-ora-01691和修改密码过期时间
157 0
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库
Oracle时间戳与时间互相转换函数
Oracle时间戳与时间互相转换函数
781 0
Oracle时间戳与时间互相转换函数
|
SQL Oracle 关系型数据库
Oracle按时间范围查询sql分享
  查询时间范围内对应的年   SELECT   TO_CHAR (   ADD_MONTHS (   TO_DATE ('2013', 'yyyy'),   (ROWNUM - 1) * 12   ),   'yyyy'   ) AS years
252 0