给定日期 03/09/1982
,我们如何判断它是星期几。在这种情况下,它将是 Tue
。
是否可能在单个查询中完成?
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 日期标准,避免日期格式的歧义。)
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
要在Oracle SQL中实现这个,我尝试了这样做并且它对我有效。
SELECT
START_DATE,
CASE WHEN START_DAY = 7 THEN 'SUNDAY'
WHEN START_DAY = 1 THEN 'MONDAY'
WHEN START_DAY = 2 THEN 'TUESDAY'
WHEN START_DAY = 3 THEN 'WEDNESDAY'
WHEN START_DAY = 4 THEN 'THURSDAY'
WHEN START_DAY = 5 THEN 'FRIDAY'
WHEN START_DAY = 6 THEN 'SATURDAY'
END DAY_NAME
FROM
(SELECT
TO_CHAR(T.START_DATE, 'DY') START_DAY,
TO_CHAR(T.START_DATE, 'MM/DD/YYYY') START_DATE
FROM
TABLE T )
select to_char(date '1982-03-09', 'Day') day from dual;
。不知道为什么人们如此热衷于大写字母,因为我们现在有语法高亮器了,而且在不使用等宽字体时,大写字母占用更多的空间。 - SuperdooperheroTO_CHAR(date '1982-03-09', 'fmDAY')
。 - M. Justin