#mysql #sql #date
Вопрос:
Это мой SQL-запрос.
select orderDate from orders;
Исходя из этого, я могу получить такой вывод
03-OCT-96
Как я могу получить месяц (например, «ОКТЯБРЬ») от даты заказа?
Комментарии:
1. какой у вас тип данных для заказа? это варчар?
Ответ №1:
попробуйте это:
select substring(cast(orderDate as string), 4, 7) as month from orders
Ответ №2:
Возможно , правильным способом сделать это было бы сначала преобразовать строку даты в подлинную дату с помощью STR_TO_DATE
, а затем использовать DATE_FORMAT
для извлечения строки месяца в любом формате, который вы хотите, например
SELECT DATE_FORMAT(STR_TO_DATE('03-OCT-96', '%d-%b-%Y'), '%M') -- October
Обратите внимание, что хранение ваших дат в виде текста в формате %d-%b-%Y
, как правило, является плохой практикой. Рассмотрите возможность использования официального столбца даты, чтобы избежать дорогостоящего преобразования STR_TO_DATE
.