#mysql #datetime
Вопрос:
select Orders, DeliveryDate from Shipping where DeliveryDate between '2021-11-25' and '2021-12-24';
Теперь я жестко кодирую, как указано выше, что не идеально, потому что мне нужно менять дату каждый месяц. Я новичок в SQL. Пожалуйста, помогите мне с этим. Спасибо.
Ответ №1:
SELECT Orders, DeliveryDate FROM Shipping WHERE DeliveryDate BETWEEN DATE_FORMAT(CURRENT_DATE, '%Y-%m-25') - INTERVAL 1 MONTH AND DATE_FORMAT(CURRENT_DATE, '%Y-%m-24');
DATE_FORMAT(CURRENT_DATE, '%Y-%m-24')
формы 24-го числа текущего года/месяца.
DATE_FORMAT(CURRENT_DATE, '%Y-%m-25') - INTERVAL 1 MONTH
формирует 25-е число текущего года/месяца, а затем вычитает месяц — то есть, наконец, формирует 25-е число предыдущего месяца.
Оба выражения являются константами во время выполнения определенного запроса, следовательно, они вычисляются во время построения плана выполнения и не влияют на время выполнения.