SELECT DATEJHIRE, ADD_MONTH(DATE_HIRE,1)
FROM EMPLOYEE_PAY_TBL;
DATE_HIRE ADD_MONTH
23-MAY-89 23-JUN-89
17-JUN-90 17-JUL-90
14-AUG-94 14-SEP-94
28-JUN-97 28-JUL-97
22-JUL-96 22-AUG-96
14-JAN-91 14-FEB-91
6 rows selected.
Чтобы добавить к дате один день в Oracle, используется следующий оператор.
SELECT DATE_HIRE, DATE_HIRE + 1
FROM EMPLOYEE_PAY_TBL
WHERE EMP_ID = '311549902';
DATE_HIRE DATE_HIRE
23-MAY-89 24-MAY-89 1 row selected.
Обратите внимание на то, что эти примеры из Oracle и SQL Server хотя и отличаются синтаксически от стандарта ANSI, по сути базируются на тех же принципах, что и стандарт SQL.
Сравнение дат и значений времени
Очень полезным условным оператором стандарта SQL для значений типа DATETIME является оператор OVERLAPS. Оператор OVERLAPS используется для сравнения двух отрезков времени и возвращает TRUE (Истина), если эти отрезки времени пересекаются, и FALSE (Ложь) - если нет. Например, в результате следующего сравнения возвращается значение TRUE:
(TIME '01:00:00', TIME '05:59:00')
OVERLAPS
(TIME '05:00:00', TIME '07:00:00')
В результате следующего сравнения возвратится значение FALSE:
(TIME '01:00:00', TIME '05:59:00')
OVERLAPS
(TIME '06:00:00', TIME '07:00:00')
Другие функции для работы с датами
В следующем списке представлены некоторые полезные функции для работы с датами, предлагаемые реализациями Oracle и SQL Server.
DATE PART Возвращает числовое (целое) значение DATE PART для даты
DATENAME Возвращает текстовое значение DATEPART для даты
GETDATE () Возвращает системную дату
DATEDIFF Возвращает разность двух дат для указанных компонентов,
таких как дни, минуты или секунды
NEXT_DAY Возвращает для указанной даты следующий день недели в
заданном виде(например, ПЯТНИЦА)
MONTH_BETWEEN Возвращает число месяцев между двумя заданными датами
Преобразования дат
Преобразования дат могут понадобиться по ряду причин. Главным образом, преобразования дат используются для изменения типа данных, изначально определенных по умолчанию как DATETIME или как-нибудь иначе в зависимости от реализации SQL.
Вот несколько типичных причин, по которым применяются преобразования дат:
• необходимость сравнения значений дат разных типов;
• необходимость представления значений дат в виде строк заданного формата;
• необходимость конвертирования символьных строк в формат даты.
Для конвертирования одних типов данных в другие используется ANSI-оператор CAST. Его базовый синтаксис следующий.
CAST ( выражение AS новый тип данных )
Конкретные примеры использования этого операторы будут показаны в следующих разделах.
Шаблоны представления дат
Шаблон представления даты (date picture) состоит из элементов форматирования и используется для извлечения из базы данных информации о дате и времени в требуемом виде. В некоторых реализациях SQL использование шаблонов представления дат не предусмотрено.
Без использования форматирования информация о дате и времени извлекается из базы данных в определенном принятом по умолчанию виде, например,
1999-12-31
31-DEC-99
1999-12-31 23:59:01.11
Но как быть, если дату нужно представить, например, в следующем виде?
December 31, 1999
Тогда необходимо конвертировать дату из формата DATETIME в символьный. Это делается с помощью соответствующих функций, применение которых будет рассматриваться в следующих разделах.
Шаблоны представления дат Sybase
УУ год
qq квартал
mm месяц
dy день года
wk неделя
dw день недели
hh час
mi минута
ss секунда
ms миллисекунда
Шаблоны представления дат Oracle _____________________________
AD Н. Э.
AM ДО ПОЛУДНЯ
ВС ДО Н. Э.
CC столетие
D номер дня недели
DD номер дня месяца
DDD номер дня года
DAY название дня недели (MONDAY)
Day название дня недели (Monday)
day название дня недели (monday)
Шаблоны предстявления дат Oracle
|
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
|
трехбуквенное сокращение для дня недели (MON)
трехбуквенное сокращение для дня недели (Моп)
трехбуквенное сокращение для дня недели (топ)
час дня
час дня
час дня в 24-часовом формате
день по юлианскому календарю с 12-31-4713 до н. э.
минута часа
номер месяца
трехбуквенное сокращение для месяца (JAN)
трехбуквенное сокращение для месяца (Jan)
трехбуквенное сокращение для месяца (Jan)
название месяца (JANUARY)
название месяца (January)
название месяца (January)
|
Читать дальше