ругленої до формату, заданого другим (необов'язковим) параметром;
TRUNC (d, fmt) - повертає дату, усічену до формату, заданого другим (необов'язковим) параметром.
3.4 Функції для роботи з датами. Приклади
Функції для роботи з датами оперують на значеннях типу DATE. Всі функції дат повертають значення типу DATE, крім функції MONTHS_BETWEEN, яка повертає ціле значення. У наступній таблиці наведені деякі з функцій для роботи з датами:
) ADD_MONTHS ( дата , n) - Повертає задану дату , збільшену на n місяців. Аргумент n може бути будь-яким цілим числом. Якщо задана дата потрапляє на останній день місяця, або якщо результуючий місяць має менше днів, ніж компонента дня заданої дати , то результуючий день буде останнім днем ??результуючого місяці. В іншому випадку результуючий день залишається таким же, як компонента дня заданої дати .
) LAST_DAY ( дата ) - Повертає дату останнього дня місяця, що містить зазначену дату .
) MONTHS_BETWEEN ( дата1 , дата2 ) - Повертає кількість місяців між датой1 і датой2 . Якщо дата1 - пізніша дата, ніж дата2 , то результат позитивний; в іншому випадку - від'ємний. Якщо дата і дата2 потрапляють на однакові дні своїх місяців або на останні дні своїх місяців, то результат буде цілим числом; в іншому випадку Oracle обчислює дробову частину результату.
) NEXT_DAY ( дата , символ ) - Повертає дату першого дня тижня, що має ім'я символ і наступного за заданою датою . Аргумент символ може задавати порядковий номер або назва дня тижня.
) ROUND ( дата [, fmt]) - Повертає задану дату , округленої до одиниць, заданих моделлю формату fmt. Якщо fmt опущена, то дата округляється до найближчого дня на момент півночі.
) SYSDATE - Повертає поточну дату і час, не вимагає аргументів.
) TRUNC ( дата [, fmt]) - Повертає задану дату , в якій порція часу усічена до одиниць, заданим моделлю формату fmt. Якщо fmt опущена, то дата округляється до найближчого дня на момент півночі.
Якщо необхідно визначити останній день місяця, то для цього цілком підійде функції LAST_DAY (дата). Її можна використовувати для визначення кількості днів, що залишилися в місяці:
SELECT LAST_DAY (SYSDATE) - SYSDATE FROM DUAL.
В результаті виконання даного оператора буде виведено кількість днів від поточної дати до кінця місяця. Приклад:
SELECT LAST_DAY («15-FEB - 2010) FROM DUAL поверне дату« 28.02.2010.
Функція для визначення кількості місяців між датами MONTHS_BETWEEN (дата_1, дата_2) Приклади:
SELECT MONTHS_ BETWEEN («01-JUL - 2009,« 01-JAN - 2010) FROM DUAL поверне значення -6;
SELECT MONTHS_BETWEEN («01-JUL - 2 009,« 10-JAN - 2010) FROM DUAL поверне значення - 6.29032258064516.
Примітка. Якщо дні місяців збігаються, то функція повертає ціле число, в іншому випадку результат буде дробовим, причому кількість днів у місяці буде прийнято 31.
Функція NEXT_DAY (дата, день тижня) дозволяє визначити наступну дату від дати, переданої в першому параметрі, яка відповідає дню тижня, переданому в другому параметрі. Приклад: SELECT NEXT_DAY («01-JUL - 2009, mon) FROM DUAL поверне дату 06.07.2009, тобто наступний понеділок після 1 липня 2009 настав 6 числа.
Усічення дати. Функція TRUNC (дата, формат), також як і розглянута вище, може не мати другого параметра. У такому випадку усічення буде проводитися до найближчого дня. Приклади:
SELECT TRUNC (SYSDATE) FROM DUAL поверне дату «22.05.2010;
SELECT TRUNC (SYSDATE, WW) FROM DUAL поверне дату «01.05.2010;
SELECT TRUNC (SYSDATE, Day) FROM DUAL поверн...