当前位置: 首页 > 面试题库 >

如何在SQL中排除周末?

韶硕
2023-03-14
问题内容

SLA_DateOrders表中有一个日期列。

SLA_Date应该排除周末(星期六和星期日)。工作日的数据应单独显示。

如何在SQL中做到这一点?


问题答案:

您只需要添加以下 过滤器

WHERE TO_CHAR(date_column, 'DY','NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN')

您的查询如下所示:

SELECT SLA_Date
   FROM orders
 WHERE TO_CHAR(SLA_Date, 'DY','NLS_DATE_LANGUAGE=AMERICAN') NOT IN ('SAT', 'SUN')

例如(WITH子句仅用于构建测试用例),以下查询仅显示从1st May 2015到的工作日(即,不包括星期六和星期日)31st May 2015

SQL> WITH DATA AS
  2    (SELECT to_date('05/01/2015', 'MM/DD/YYYY') date1,
  3      to_date('05/31/2015', 'MM/DD/YYYY') date2
  4    FROM dual
  5    )
  6  SELECT date1+LEVEL-1 the_date,
  7        TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN') day
  8  FROM DATA
  9  WHERE TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN')
 10        NOT IN ('SAT', 'SUN')
 11  CONNECT BY LEVEL <= date2-date1+1;

THE_DATE  DAY
--------- ---
01-MAY-15 FRI
04-MAY-15 MON
05-MAY-15 TUE
06-MAY-15 WED
07-MAY-15 THU
08-MAY-15 FRI
11-MAY-15 MON
12-MAY-15 TUE
13-MAY-15 WED
14-MAY-15 THU
15-MAY-15 FRI
18-MAY-15 MON
19-MAY-15 TUE
20-MAY-15 WED
21-MAY-15 THU
22-MAY-15 FRI
25-MAY-15 MON
26-MAY-15 TUE
27-MAY-15 WED
28-MAY-15 THU
29-MAY-15 FRI

21 rows selected.

SQL>

有关详细示例,请参见生成日期,月份名称,星期编号,两个日期之间的天数



 类似资料:
  • 问题内容: 我在不返回任何值时遇到问题。数据库中有符合此条件的帐户。有些困惑为什么他们不被退回。有什么建议? 问题答案: 不要使用。从语义上讲,这是违反直觉的。如果子查询中的 任何 值为,则不返回任何行。 使用代替; 或使用和:

  • 问题内容: 是否可以在单个SQL语句中执行以下操作: 例如,在提示中使用电话号码的子集。然后查询其中包含电话号码的数据库,并返回原始子集中哪些电话号码不在我的数据库中?我的数据库是Oracle 10g。 基本上,我不想知道哪个电话号码不在数据库中,而是要取回它们之间的电话号码。 问题答案: 假设电话号码是NUMBER,则可以生成特定范围内的所有电话号码的列表 然后,您可以将该范围内所有电话号码的列

  • 问题内容: 我正在尝试为所有JavaScript文件运行命令,但是如何排除特定目录? 这是我们正在使用的代码。 问题答案: 使用开关。例如,如果要排除目录,只需在查找命令中添加一个: 这是带有多个目录的示例: 在这里,我们排除了 dir1 , dir2 和 dir3 ,因为在表达式中,这是一个作用于条件(如果是 dir1 或 dir2 或 dir3 )的操作,并与进行与。 进一步的操作是,仅打印。

  • 在Jenkins中,当构建失败时,它将从SCM获取罪犯列表,并使用“可编辑电子邮件通知”插件向罪犯发送电子邮件。我的问题是我想把一些用户排除在邮件列表之外。因为他们和那件事毫无关系。 我在詹金斯发现了“被排除的接受者”-

  • 依赖关系:树是: 有人能帮我解除对验证api: jar: 1.0.0. GA的依赖吗?它似乎在wc pom中作为传递依赖。谢谢