Функция SYSDATE Функция SYSDATE возвращает текущую дату и время по часам сервера.
Пример: SELECTSYSDATEFROM dual;
Функция ADD_MONTHS(d, x) Возвращает
дату, полученную в результате прибавления к дате d одного или
нескольких месяцев. Количество месяцев задается параметров x, причем x
может быть отрицательным — в этом случае указанное количество месяцев
вычитается из заданной даты.
Функция LAST_DAY(d) Возвращает последнее число месяца, указанного в дате d.
Пример: SELECT SYSDATE d, LAST_DAY (SYSDATE) d1 FROM dual;
Функция MONTHS_BETWEEN(d1, d2) Функция MONTHS_BETWEEN возвращает количество месяцев между двумя датами d1 и d2 с учетом знака как d1-d2, возвращаемое число является дробным.
Функция TRUNC(d[,mask]) Производит
усечение указанной даты в соответствии с маской. Если маска не указана,
то усечение производится до даты (время отбрасывается).
Пример: SELECT SYSDATE d1, TRUNC (SYSDATE) d2 FROM dual;
Усечение даты до часов, дней, месяца и года. Форматная маска по умолчанию равна «DD»
Форматные маски для функций TRUNC и ROUND: СС - Первый день столетия YEAR, YYYY, YY, Y - Первый день года Q - Первый день квартала MONTH, MON, MM - Первый день месяца WW - Тот же день недели, что и первый день текущего года W - Тот же день недели, что и первый день текущего месяца DDD, DD - День DAY, DY, D - Первый день недели HH, HH12, HH24 - Час MI - Минута
Функция TO_DATE(str[,mask [,nls_lang]]) Функция TO_DATE
преобразует строку str в дату. Преобразование ведется по маске mask,
если она указана. Если маска не указана, то берется маска по умолчанию.
В случае указания маски можно указать еще один параметр — язык,
используемый при форматировании названий месяцев и дней. В случае
ошибки анализа строки str в соответствии с заданной маской возникает
исключительная ситуация. Наиболее распространенная ошибка «ORA-01830:
шаблон формата даты завершается перед преобразованием всей строки
ввода». Кроме того, нередко встречается ошибка «ORA-01821: формат даты
не распознан» — она возникает при указании недопустимой форматной маски.
Пример: SELECTTO_DATE ('12.09.2006') d FROM dual;
Функция TO_CHAR(d[,mask]) Преобразует
дату d в символьную строку в соответствии с заданной маской. В случае
указания недопустимой маски возникает исключительная ситуация
«ORA-01821: формат даты не распознан».
СС - Столетие. SСС - Столетие, перед датами до нашей эры ставится знак «минус». YYYY - Год. SYYYY - Год, перед датами до нашей эры ставится знак «минус». YYY, YY, Y - Год, последние 3,2 или 1 цифры года. SYEAR, YEAR - Год, записанный прописью c учетом текущего национального языка. Q - Номер квартала. MM - Месяц. RM - Номер месяца, записанный с имитацией римских цифр при помощи символов X и I. MONTH - Название месяца прописью. MON - Название месяца прописью в сокращенном до трех символов виде. WW - Неделя года. W - Неделя месяца. DDD - День года. DD - День месяца. D - День недели. DAY - День недели прописью, при необходимости дополняется до девяти символов пробелами. DY - День недели прописью, сокращенный до трех символов. J - Дата юлианского календаря. Является числом дней от 1.01.4712 до нашей эры. HH24 - Час дня по 24-часовой шкале (0-23). HH12, HH - Час дня по 12-часовой шкале (1-12). AM, PM - Вывод признака «до полудня» — AM и «после полудня» — PM. Указание AM и PM в форматной маске равнозначно. MI - Минуты (0-59). SS - Секунды (0-59). SSSSS - Количество секунд после полуночи. -/.,:; - Знаки пунктуации. Они выводятся в соответствующие места отформатированной даты. SP
- Форматный суффикс. Его добавление к элементу форматной маски,
возвращающему число, приводит к форматированию этого числа прописью.
-- последний день месяца SELECT LAST_DAY(TRUNC(SYSDATE)) AS lastday FROM dual; -- первый день месяца SELECT TRUNC(SYSDATE, 'MONTH') AS firstdayofmonth FROM dual; -- первый день месяца, другой вариант SELECT TRUNC(SYSDATE, 'MM') AS firstdayofmonth FROM dual; -- первый день года SELECT TRUNC(SYSDATE, 'YEAR') AS firstdayofyear FROM dual; -- первый день года, другой вариант SELECT TRUNC(SYSDATE, 'YY') AS firstdayofyear FROM dual; -- извлечь месяц из даты SELECT EXTRACT(MONTH FROM SYSDATE) FROM dual; -- извлечь день из даты SELECT EXTRACT(DAY FROM SYSDATE) FROM dual; -- извлечь год из даты SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual;