Oracle SQL: различные методы получения первого дня месяца

Вот несколько способов получить первый день месяца в Oracle SQL, а также примеры кода:

Метод 1: использование TRUNC() и формата «MM»

SELECT TRUNC(SYSDATE, 'MM') AS first_day_of_month FROM dual;

Объяснение: Функция TRUNC() используется для усечения значения даты до определенной части (в данном случае «ММ» для месяца). Передав функцию SYSDATE и «ММ» в качестве аргументов, мы можем получить первый день текущего месяца.

Метод 2: использование функции EXTRACT()

SELECT TRUNC(SYSDATE) - EXTRACT(DAY FROM SYSDATE) + 1 AS first_day_of_month FROM dual;

Объяснение: Функция EXTRACT() извлекает определенную часть значения даты. Вычитая день месяца из текущей даты и прибавляя 1, мы можем получить первый день месяца.

Метод 3: использование TO_CHAR() и формата «ГГГГ-ММ»

SELECT TO_CHAR(SYSDATE, 'YYYY-MM')||'-01' AS first_day_of_month FROM dual;

Объяснение: Функция TO_CHAR() преобразует значение даты в указанный формат. Отформатировав дату как «ГГГГ-ММ» и добавив «-01», мы можем получить первый день текущего месяца.

Метод 4. Использование функций LAST_DAY() и ADD_MONTHS()

SELECT ADD_MONTHS(LAST_DAY(SYSDATE) + 1, -1) AS first_day_of_month FROM dual;

Объяснение: Функция LAST_DAY() возвращает последний день месяца для заданной даты. Прибавляя 1 день к последнему дню текущего месяца, а затем вычитая 1 месяц с помощью функции ADD_MONTHS(), мы получаем первый день месяца.