таких как дни, минуты или секунды
NEXT_DAY Возвращает для указанной даты следующий день недели в
заданном виде(например, ПЯТНИЦА)
MONTH_BETWEEN Возвращает число месяцев между двумя заданными датами
Преобразования дат могут понадобиться по ряду причин. Главным образом, преобразования дат используются для изменения типа данных, изначально определенных по умолчанию как DATETIME или как-нибудь иначе в зависимости от реализации SQL.
Вот несколько типичных причин, по которым применяются преобразования дат:
• необходимость сравнения значений дат разных типов;
• необходимость представления значений дат в виде строк заданного формата;
• необходимость конвертирования символьных строк в формат даты.
Для конвертирования одних типов данных в другие используется ANSI-оператор CAST. Его базовый синтаксис следующий.
CAST ( выражение AS новый тип данных )
Конкретные примеры использования этого операторы будут показаны в следующих разделах.
Без использования форматирования информация о дате и времени извлекается из базы данных в определенном принятом по умолчанию виде, например,
1999-12-31
31-DEC-99
1999-12-31 23:59:01.11
Но как быть, если дату нужно представить, например, в следующем виде?
December 31, 1999
Тогда необходимо конвертировать дату из формата DATETIME в символьный. Это делается с помощью соответствующих функций, применение которых будет рассматриваться в следующих разделах.
УУ год
qq квартал
mm месяц
dy день года
wk неделя
dw день недели
hh час
mi минута
ss секунда
ms миллисекунда
AD Н. Э.
AM ДО ПОЛУДНЯ
ВС ДО Н. Э.
CC столетие
D номер дня недели
DD номер дня месяца
DDD номер дня года
DAY название дня недели
Day название дня недели
day название дня недели
DY Dy dy HH НН12 НН24 J MI MM MON Mon mon MONTH Month month PM Q KM RR 3 SSSSS SYYYY W WW Y YY YYY YYYY YEAR Year year | трехбуквенное сокращение для дня недели трехбуквенное сокращение для дня недели трехбуквенное сокращение для дня недели час дня час дня час дня в 24-часовом формате день по юлианскому календарю с 12-31-4713 до н. э. минута часа номер месяца трехбуквенное сокращение для месяца трехбуквенное сокращение для месяца трехбуквенное сокращение для месяца название месяца название месяца название месяца после полудня номер квартала римский номер месяца две цифры года секунда минуты число секунд со времени полуночи год со знаком: например, 500 г. до н. э. = -500 номер недели месяца номер недели года последняя цифра года последние две цифры года последние три цифры года год год словами год словами год словами |
Значения типа DATETIME конвертируют (преобразуют) в символьные строки для того, чтобы иметь возможность изменить представление дат при выводе данных запроса. Для этого используются функции преобразования. Вот пример преобразования значения даты и времени в символьную строку в запросе SQL Server:
SELECT DATE_HIRE = DATENAME(MONTH, DATE_HIRE)
FROM EMPLOYEE_PAY__TBL
DATE_HIRE
May
June
August
June
July
January
6 rows affected.
В следующем примере для преобразования используется функция TO_CHAR из Oracle:
SELECT DATE_HIRE, TO_CHAR(DATE_HIRE,'Month dd, yyyy') HIRE
FROM EMPLOYEE_PAY_TBL;
DATE_HIRE HIRE
23-MAY-89 May 23, 1989
17-JUN-90 June 17, 1990
14-AUG-94 August 14, 1994
28-JUN-97 June 28, 1997
22-JUL-96 July 22, 1996
14-JAN-91 January 14, 1991
6 rows selected.