如何从日期获取工作日名称?

时间:2011-11-04 03:40:49

标签: oracle date dayofweek

鉴于03/09/1982,我们怎么说这是哪一周工作日。在这种情况下,它将是Tue

是否可以进入单个查询?

4 个答案:

答案 0 :(得分:110)

SQL> SELECT TO_CHAR(date '1982-03-09', 'DAY') day FROM dual;

DAY
---------
TUESDAY

SQL> SELECT TO_CHAR(date '1982-03-09', 'DY') day FROM dual;

DAY
---
TUE

SQL> SELECT TO_CHAR(date '1982-03-09', 'Dy') day FROM dual;

DAY
---
Tue

(请注意,查询使用ANSI日期文字,遵循ISO-8601日期标准,避免日期格式模糊。)

答案 1 :(得分:2)

聚会晚了将近十年,但我认为有必要加强@Zohaib 的回答,因为它的结果取决于客户的语言。如果您向用户显示工作日名称,那绝对没问题,但如果您的代码依赖它,我宁愿像这样控制语言:

SQL> SELECT TO_CHAR(date '1982-03-09', 'DAY', 'NLS_DATE_LANGUAGE = ENGLISH') day FROM dual;

DAY
---------
TUESDAY

SQL> SELECT TO_CHAR(date '1982-03-09', 'DY', 'NLS_DATE_LANGUAGE = ENGLISH') day FROM dual;

DAY
---
TUE

SQL> SELECT TO_CHAR(date '1982-03-09', 'Dy', 'NLS_DATE_LANGUAGE = ENGLISH') day FROM dual;

DAY
---
Tue

答案 2 :(得分:-1)

抱歉为时已晚。但有人可能会来这个帖子看到这个。

使用

ListBox

您可以在第二个参数中使用其他选项,因为它有很多种类。

答案 3 :(得分:-1)

要针对oracle sql执行此操作,语法为:

SUBSTR(col,INSTR(col,'-',1,2)+1) AS new_field

在此示例中,我寻找第二个'-'并将子字符串带到末尾