В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию TRUNC (для дат) с синтаксисом и примерами.
Описание
Функция TRUNC в Oracle/PLSQL играет важную роль в обработке и анализе данных. Она позволяет нам усекать даты до определенной единицы измерения, что особенно полезно при группировке данных по дням, месяцам, кварталам или годам. Например, если у вас есть данные о продажах за определенный период времени с точностью до минуты, вы можете использовать функцию TRUNC, чтобы усечь эти даты до дня. Это позволит вам агрегировать данные и получить общую картину продаж за каждый день
Синтаксис
Синтаксис Oracle/PLSQL функции TRUNC:
Параметры или аргументы
date дата для усечения.
format единица измерения, которая применяется для усечения. Если параметр format опущен, функция TRUNC обрежет дату до значения дня, так что любые часы, минуты, или секунды будут усечены. Ниже приведены допустимые параметры format:
Unit | Действительные параметры формата |
---|---|
Год | SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y |
ISO год | IYYY, IY, I |
Квартал | Q |
Месяц | MONTH, MON, MM, RM |
Неделя | WW |
Неделя | IW |
Неделя | W |
День | DDD, DD, J |
День начала недели | DAY, DY, D |
Час | HH, HH12, HH24 |
Минута | MI |
Функция TRUNC (применительно к датам) возвращает значение date.
Применение
Функцию TRUNC можно использовать в следующих версиях Oracle/PLSQL:
- Oracle 21c, Oracle 19c, Oracle 18c,Oracle 12cR2, Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
Пример для дат
Рассмотрим несколько примеров функции TRUNC и изучим, как использовать функцию TRUNC в Oracle/PLSQL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
SELECT TRUNC(TO_DATE('31.08.2024','dd.mm.yyyy'), 'YEAR') FROM DUAL; --усекает дату до года --Результат: 01.01.2024 SELECT TRUNC(TO_DATE('31.08.2024','dd.mm.yyyy'), 'Q') FROM DUAL; --усекает дату до квартала --Результат: 01.07.2024 SELECT TRUNC(TO_DATE('31.08.2024','dd.mm.yyyy'), 'MONTH') FROM DUAL; --усекает дату до месяца --Результат: 01.08.2024 SELECT TRUNC(TO_DATE('31.08.2024','dd.mm.yyyy'), 'DDD') FROM DUAL; --усекает дату до дня --Результат: 31.08.2024 SELECT TRUNC(TO_DATE('31.08.2024','dd.mm.yyyy'), 'DAY') FROM DUAL; -- усекает дату до дня начала недели --Результат: 25.08.2024 SELECT TRUNC(TO_DATE('15.03.2024','dd.mm.yyyy'), 'IW') FROM DUAL; -- усекает дату до недели --Результат: 15.03.2024 |
Заключение
Функция TRUNC - это мощный инструмент для работы с датами в Oracle/PLSQL. Она предоставляет гибкость и точность, необходимые для эффективного анализа данных.