Oracle SQL - Как вывести данные из таблицы на основе дня недели из столбца hiredate? - PullRequest
0 голосов
/ 25 июля 2011

Если быть точным: у меня есть таблица с 6 днями столбцов, одним из которых является Hiredate. Hiredate имеет тип ДАТА и в форме ДД-ПН-ГГ. Теперь я пытаюсь выводить только те строки данных, которые имеют hateate понедельника или вторника.

В настоящее время я пытаюсь сделать что-то вроде:

SELECT name, position, hiredate
FROM table
WHERE hiredate = 'monday';

или

SELECT TO_CHAR(hiredate, 'day') 
FROM table
WHERE TO_CHAR(hiredate, 'day') = 'monday';

ни то, ни другое не работает, и ни один из других вариантов SQL, которые я пробовал, не работает.

Я совершенно уверен, что это очень просто, но я новичок и немного заблудился, куда идти. Любая помощь или советы будут оценены.

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Ответ Хунса верен, но сработает, только если ваша сессия Oracle использует английский язык (NLS_LANGUAGE).

Другой запрос, который работает для всех языков:

select name, position, hiredate
 from table
where to_char(sysdate, 'D') in (1, 2); -- 1 monday; 2 tuesday

to_char(sysdate, 'D') возвращает следующие значения для каждого дня недели:

1 monday
2 tuesday
3 wednesday
4 thrusday
5 friday
6 saturday
7 sunday
2 голосов
/ 25 июля 2011

В целом, я считаю, что собственные документы Oracle 10g бесценны, вы можете найти их здесь: Домашняя страница документа Oracle 10g , и в этом случае поиск day of week дает несколько хороших результатов, как этот: введите описание ссылки здесь , на этой странице я вижу: DAY Yes Name of day, padded with blanks to display width of the widest name of day in the date language used for this element.

Так что я думаю, что вы, вероятно, вернетесь в понедельник, но потом будете заполнены пробелами.Я, вероятно, попытался бы получить сокращенную форму, что-то вроде:

SELECT TO_CHAR(hiredate, 'DY') FROM table WHERE lower(TO_CHAR(hiredate, 'DY')) in ('mon', 'tue');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...