SQL: последний день предыдущего месяца в формате по умолчанию

Рейтинг: 0Ответов: 4Опубликовано: 04.07.2023

Вопрос из тренажера.

Напишите запрос, который выводит последний день предыдущего месяца в формате по умолчанию. В выборке должен присутствовать один атрибут: date.

Важно! В тренажере не работает функция current_date. Например, вы можете использовать 'now' в качестве параметра функции DATE(). Под форматом по умолчанию понимается формат, в котором функции DATE(), TIME() и DATETIME() выводят дату и время соответственно.

Например, такой запрос

SELECT DATE(DATE('now'),  '- 1 days') as date;

или

SELECT DATE(DATE('now'),  '- 1 days');

выдает NULL.

Ответы

▲ 0

Какой-то там SQL странный. А вообще путем решения может быть вариант когда из текущей даты получаем месяц и год, а число берем 1. И собираем дату первого числа текущего месяца.

Дальше из этого вычитаем один день и получаем последнюю дату предыдущего месяца.

▲ 0

был лишний пробел в '- 1 days', теперь работает: SELECT DATE(DATE('now'), '-1 days') as date;

▲ 0

у меня так получилось вывести дату

SELECT DATE(DATE('now'), 'start of month', '-1 days') AS date
▲ 0

SELECT DATE('now', 'start of month', '-1 days') AS date

Написал такой запрос, независимо от кол-ва дней в месяце, возращает первую дату текущего месяца и отнимает 1 день. Получается последний день предыдущего месяца