loading..
Русский    English
11:40
листать

Сортировка по дням рождения стр. 2

Функция CONVERT специфична для SQL Server, т.е. она с большой вероятностью отсутствует в других СУБД.

Чтобы решить нашу задачу сортировки дней рождения в других СУБД, будем следовать первому способу, т.е. использовать подходящую функцию, которая выполняет преобразование даты в текстовый формат "MM-DD" (месяц-день).

MySQL

В MySQL такой функцией является DATE_FORMAT:

  1. SELECT date, DATE_FORMAT(date,'%m-%d') "m-d"
  2.     FROM Battles;

Результат

date    m-d
1962-10-20 00:00:00    10-20
1962-10-25 00:00:00    10-25
1942-11-15 00:00:00    11-15
1941-05-25 00:00:00    05-25
1943-12-26 00:00:00    12-26
1944-10-25 00:00:00    10-25

 Соответственно, запрос, выполняющий сортировку по "дням рождения", будет выглядеть так:

  1. SELECT date
  2.     FROM Battles
  3.     ORDER BY DATE_FORMAT(date,'%m-%d');

PostgreSQL & Oracle

В PostgreSQL и Oracle имеется функция TO_CHAR, задающая формат текстового представления даты. Вот пример запроса (PostgreSQL), возвращающий результат, аналогичный представленному выше для MySQL.

  1. SELECT date, TO_CHAR(date,'mm-dd') "m-d"
  2.     FROM Battle;

Единственное отличие для Oracle заключается не в синтаксисе самой функции, а в том, что ключевое слово date придется заключать в двойные кавычки для указания, что это имя столбца, а не тип данных.

Вот так для Oracle выглядит пример с сортировкой по дням рождения:

  1. SELECT "date"
  2. FROM Battles
  3. ORDER BY  TO_CHAR("date",'mm-dd');

date
1941-05-25 00:00:00
1962-10-20 00:00:00
1962-10-25 00:00:00
1944-10-25 00:00:00
1942-11-15 00:00:00
1943-12-26 00:00:00

Bookmark and Share
Страницы: 1 2
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
месяц назад
Medostaff . курсы программирования Atomskill
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.