2015-10-30 3 views
0

Я новичок в SQL и пытаюсь выяснить, как отображать даты в столбце в качестве дня, а затем заказывать по дням недели (т.е. понедельник> вторник> среда> и т. Д. ..)Дата заказа по дням недели

Have первой части вниз (отображение в день), но когда я заказываю по моему колонку «дня», кажется, заказать в алфавитном порядке (т.е. понедельник> пятница> суббота> и т.д ...)

Вот мой запрос:

SELECT last_name, hire_date, TO_CHAR(hire_date, 'DAY') AS Day 
FROM employees 
ORDER BY Day 

Любой вход будет высоко ценится :)

+0

использовать 'ctrl-K' для форматирования текста как' code' или добавить 4 пробела в начале каждой строки. –

+1

use 'order by hire_date' –

+0

Пожалуйста, отметьте свой вопрос в базе данных, которую вы используете. –

ответ

0

Вы можете использовать to_char(<date>, 'd') в течение дня недели:

SELECT last_name, hire_date, TO_CHAR(hire_date, 'DAY') AS Day 
FROM employees 
ORDER BY TO_CHAR(hire_date, 'D'); 

Там могут быть некоторые дополнительные манипуляции, чтобы получить правильный первый день, потому что это зависит от настроек интернационализации.

+0

Спасибо, работал. Не понял, что я могу применить преобразование символов с заказом по ключевому слову, приятно знать. – RDG

1

Как VKP говорят, что вы, вероятно, хотите

SELECT last_name, hire_date, TO_CHAR(hire_date, 'DAY') AS Day 
FROM employees 
ORDER BY hire_date 

, который будет показывать дни, как

1/10/2015 thursday 
2/10/2015 friday 
... 
30/10/2015 friday 

, но если вы хотите сделать заказ по дням недели не в алфавитном порядке вам нужно использовать функцию даты другое зависит от вашего база данных

В сервере SQL у вас есть DATEPART

select datename(dw,getdate()) --Friday  
select datepart(dw,getdate()) --6 

Oracle у вас есть

select to_char(hire_date, 'D') from dual; 

так order by to_char(hire_date, 'D') даст вам

05/10/2015 monday 
12/10/2015 monday 
19/10/2015 monday 
26/10/2015 monday 
06/10/2015 tuesday 
13/10/2015 tuesday 
20/10/2015 tuesday 
27/10/2015 tuesday 
+0

Спасибо за ответ. Да, я хотел бы заказать, как указано в вашем втором примере. Я попробовал заказ «datepart», как было предложено, но, похоже, не работал, может быть, не совместима с Oracle? – RDG

+0

Да. Я написал это, когда не знал ваших rdbms, теперь я редактирую ответ, чтобы включить функцию oracle. –

+0

Спасибо. Будет более конкретный тип базы данных в будущих вопросах! – RDG

Смежные вопросы