M0NTHS_BETWEEN('12.09.2006', '2.05.2006') 62, M0NTHS_BETWEEN('2.05.2006', '12.09.2006') d3 FROM dual
|
D1 |
D2 |
D3 |
|
4 |
4,32258064516129 |
-4,32258064516129 |
Функция TRUNC(d[,mask])
Производит усечение указанной даты в соответствии с маской. Если маска не указана, то усечение производится до даты (время отбрасывается).
Пример:
SELECT SYSDATE dl,
TRUNC(SYSDATE) d2 FROM dual
Dl D2
26.09.2006 16:45:26 26.09.2006
Рассмотрим типовые примеры — усечение даты до часов, дней, месяца и года. Форматная маска по умолчанию равна «DD»
SELECT SYSDATE dl,
TRUNC(SYSDATE, 'HH24') 6.2,
TRUNC(SYSDATE, 'DD') d3,
TRUNC(SYSDATE, 'MM') d4,
TRUNC(SYSDATE, 'YYYY') d5FROM dual
~D1 D2 D3 D4 D5
26.09.2006 16:49:21 26.09.2006 16:00:00 26.09.2006 01.09.2006 01.01.2006
Функция ROUND(d[,mask])
Функция ROUND аналогична TRUNC, но вместо усечения она производит округление. Форматная маска по умолчанию равна «DD». Пример:
SELECT SYSDATE dl,
ROUND(SYSDATE) d2,
ROUND(SYSDATE, 'НН24') d3,
ROUND(SYSDATE, 'DD') d4,
ROUND(SYSDATE, 'MM') d5FROM dual
Dl D2 D3 D4 D5
26.09.2006 16:50:50 27.09.2006 26.09.2006 17:00:00 27.09.2006 01.10.2006
Форматные маски, допустимые для функций TRUNC и ROUND
Рассмотрим подробнее форматные маски и особенности их применения:
|
Маска |
Назначение |
|
СС |
Первый день столетия |
|
YEAR, или YYYY, или YY, или Y |
Первый день года |
|
Q |
Первый день квартала |
|
MONTH, или MON, или ММ |
Первый день месяца |
|
WW |
Тот же день недели, что и первый день текущего года |
|
W |
Тот же день недели, что и первый день текущего месяца |
|
DDD или DD |
День |
|
DAY, или DY, или D |
Первый день недели |
|
НН, или НН12, или НН24 |
Час |
|
Ml |
Минута |
Функция TO_DATE(str[,mask [,nls_lang]])
предыдущаяследующая