Как получить месяц в строковом типе из даты в SQL?

#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 .