sql - Oracle SQL 中的日期之前

标签 sql oracle oracle11g oracle-sqldeveloper

给出了一个日期,例如(2013 年 5 月 11 日,即星期六)。我必须找到该日期之前的 7 个工作日(周一至周五)。那是 2013 年 5 月 3 日,即周五。我知道如何找出两个日期之间的工作日。通过:-

SELECT from_date- todate - ((
          TRUNC (NEXT_DAY (from_date, 'SAT') - NEXT_DAY (todate - 1, 'SAT')) / 7) + (
          TRUNC (NEXT_DAY (from_date, 'SUN') - NEXT_DAY (todate - 1, 'SUN')) / 7)) + 1
FROM   dual;

但现在我只有一个给定的日期,必须找到这一天之前的第 7 天(根据工作日!)

最佳答案

sysdate 替换为您需要的任何日期。

02:35:58 SYSTEM@sandbox> ed
Wrote file S:\spool\sandbox\BUFFER_SYSTEM_36.sql

  1  select sysdate - 7 seven_days_ago, min(sysdate - level) seven_bdays_ago
  2    from dual
  3   where rownum <= 7
  4     and to_char(sysdate - level, 'DY') not in ('SAT', 'SUN')
  5* connect by level <= 11
02:36:16 SYSTEM@sandbox> /

SEVEN_DAYS_AGO      SEVEN_BDAYS_AGO
------------------- -------------------
04.05.2013 02:36:17 02.05.2013 02:36:17

Elapsed: 00:00:00.03

关于sql - Oracle SQL 中的日期之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487813/

相关文章:

mysql - MySQL 中的多个多对多关系场景

mysql - like 和 in 一起使用如何?

mysql - SQL如何统计表的每个字段

java - Hibernate 5 ID AUTO Generation Type for Oracle 作为 Sequence 和 MySQL 作为 Identity

oracle - 查询以显示数据库和数据文件中的所有表空间

java - 在 Oracle 和 Vertica 之间移动数据的有效方法

oracle - Oracle 中的 logging/nologging 选项的目的是什么

java - mysql查询错误insert joined select

java - 获取2个表中的每个最新数据以及其他表中的数据

java - 如何正确地将参数值传递给sql查询? java、netbeans