Учитывая 03/09/1982
, как мы можем сказать, какой это день недели. В этом случае это будет Tue
.
Можно ли попасть в один запрос?
Учитывая 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 и избегают двусмысленности формата даты.)
select to_char(date '1982-03-09', 'Day') day from dual;
. Понятия не имею, почему люди так любят заглавные буквы, ведь теперь у нас есть подсветка синтаксиса, а заглавные буквы занимают больше места, если не используются шрифты фиксированной ширины.
- person Superdooperhero; 13.05.2021
Почти на десять лет поздно до вечеринки, но я думаю, что необходимо улучшить ответ @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
Чтобы сделать это для oracle sql, синтаксис будет следующим:
,SUBSTR(col,INSTR(col,'-',1,2)+1) AS new_field
в этом примере я ищу второй '-' и довожу подстроку до конца