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%'
РЕДАКТИРОВАТЬ: Я предпочитаю ответ Оташина.