SQL: Попытка и ошибка сортировки данных для отображения определенных месяцев

Я работаю над домашним заданием, и все было хорошо, пока я не дошел до этой точки. Мой профессор хочет, чтобы я извлекал даты только в марте, апреле и мае, без использования оператора BETWEEN.

ПРИМЕЧАНИЕ: я не получаю никаких ошибок. Я использую EDUPE, который работает MySQL, но имеет небольшие отклонения, где некоторые вещи просто не будут работать.

Вопрос был в том, есть ли способ сделать код у меня правильно функционировать? Или я иду в неправильном направлении?

/*Exercise Six*/
SELECT order_id as "Order ID", DATE_FORMAT(order_date, '%M-%d-%Y') as "Order Date"
FROM orders
WHERE order_date IN ('March%', 'April%', 'May%')
ORDER BY order_date ASC;

2 ответа

Решение

Вы можете попробовать с date_format снова:

WHERE DATE_FORMAT(order_date, '%M') IN ('March', 'April', 'May')

Или просто monthname():

WHERE MONTHNAME(order_date) IN ('March', 'April', 'May')

Я не уверен, что это самый эффективный способ, но вы можете сделать это с помощью "union":

select order_ID, order_date from orders
where order_date Like '%Mar%'
union
select order_ID, order_date from orders
where order_date Like '%Apr%'
union
select order_ID, order_date from orders
where order_date Like '%May%'

РЕДАКТИРОВАТЬ: Я предпочитаю ответ Оташина.

Другие вопросы по тегам