5.8 Функции работы с датой и временемВ данном разделе речь пойдет о функциях работы с датой/временем и функциями преобразования типов для даты. Для хранения даты и времени в Oracle предусмотрен специальный тип DATE. С физической точки зрения это дробное число, целая часть которого хранит количество дней с некоторой базовой даты, а дробная — время. Это позволяет совершать над датами арифметические операции — сложение и вычитание. Функция SYSDATE Это одна из самых часто употребляемых функций, она возвращает текущую дату и время по часам сервера. Пример: SELECT SYSDATE SYSDATE Функция ADD_MONTHS(d, x) Возвращает дату, полученную в результате прибавления к дате d одного или нескольких месяцев. Количество месяцев задается параметров х, причем х может быть отрицательным — в этом случае указанное количество месяцев вычитается из заданной даты. Пример: SELECT SYSDATE d,
Функция LAST _DAY(d) Возвращает последнее число месяца, указанного в дате d. Пример: SELECT SYSDATE d,
Данная функция очень удобна для определения количества дней в заданном месяце, например: SELECT SYSDATE d,
Функция MONTHS_BETWEEN(dl, d2) Функция MONTH_BETWEEN возвращает количество месяцев между двумя датами dl и d2 с учетом знака как dl-d2, возвращаемое число является дробным. SELECT MONTHS_BETWEEN('2.09.2006', '2.05.2006') d1,
Функция TRUN С (d[,mask ]) Производит усечение указанной даты в соответствии с маской. Если маска не указана, то усечение производится до даты (время отбрасывается). Пример: SELECT SYSDATE d1,
Рассмотрим типовые примеры — усечение даты до часов, дней, месяца и года. Форматная маска по умолчанию равна «DD» SELECT SYSDATE dl,
Функция ROUND(d[,mask]) Функция ROUND аналогична TRUNC, но вместо усечения она производит округление. Форматная маска по умолчанию равна «DD». Пример: SELECT SYSDATE d1,
Форматные маски, допустимые для функций TRUNC и ROUND Рассмотрим подробнее форматные маски и особенности их применения:
Функция TO_DATE(str[,mask [,nls_lang]]) Функция ТО_DATE преобразует строку str в дату. Преобразование ведется по маске mask, если она указана. Если маска не указана, то берется маска по умолчанию. В случае указания маски можно указать еще один параметр — язык, используемый при форматировании названий месяцев и дней. В случае ошибки анализа строки str в соответствии с заданной маской возникает исключительная ситуация. Наиболее распространенная ошибка «ORA-01830: шаблон формата даты завершается перед преобразованием всей строки ввода». Кроме того, нередко встречается ошибка «ORA-01821: формат даты не распознан» — она возникает при указании недопустимой форматной маски. Пример: SELECT T0_DATE('12.09.2006') d Функция TO_CHAR(d[,mask]) Преобразует дату d в символьную строку в соответствии с заданной маской. В случае указания недопустимой маски возникает исключительная ситуация «ORA-01821: формат даты не распознан». Пример: SELECT SYSDATE d1,
|