2013-03-29 3 views
1

У меня есть короткая версия месяцев: JAN, FEB, MAR и т.д.MYSQL: Как преобразовать строку в месяц (номер)

и хотел бы, чтобы преобразовать их в это соответствующее числовое значение: 1, 2, 3 и т.д.

Кроме того, я хотел бы быть в состоянии изменить назад и вперед между числовой-месячной стоимостью, в «короткий» название месяца (JAN, FEB, MAR), и это длинная версия (January, February, March и т.д.)



Примечание: Как @ Dipu-Радж отметил, что это не является дубликатом, потому что я задаю напротив MySQL MONTHNAME() from numbersи ответ отличается, а ПОТОМУ требует различных функций

+0

http://stackoverflow.com/questions/7027129/mysql-monthname –

+0

Этот вопрос не дублируется как помеченный. Здесь он спрашивает, как конвертировать из Month Name в Month Number, но у помеченного вопроса есть ответ для конвертации из Month Number to Month Name. –

ответ

9

Для преобразования Сокращенно до полного использования имени месяца:

mysql> select monthname(str_to_date('Mar','%b')); 
+------------------------------------+ 
| monthname(str_to_date('Mar','%b')) | 
+------------------------------------+ 
| March        | 
+------------------------------------+ 

Для преобразования Сокращенно для использования номер:

mysql> select month(str_to_date('Mar','%b')); 
+--------------------------------+ 
| month(str_to_date('Mar','%b')) | 
+--------------------------------+ 
|        3 | 
+--------------------------------+ 
+0

+1 - приятно: мое решение позволяет день быть нулевым, но я не считаю, что год может также быть нулевым; это намного чище. –

0

JAN его номер месяца; заменить свой столбец/значение, где вы видите FEB ниже:

date_format(str_to_date(concat(2012, 'FEB'), '%Y%b'), '%m') 
            ^^^^^ 

его короткое название месяца; заменить свой столбец/значение, где указано:

date_format(str_to_date(concat('2012-', 1), '%Y-%m'), '%b') 
             ^

Использование %M вместо %b в качестве последнего значения выше, чтобы получить длинное название месяца.

-1

попробовать это ..

$date = 'Jan'; 
    echo 'Month number is '.date('n', strtotime($date)).'</br>'; 
    echo 'and its '.date('F', strtotime($date)); 

использовать этот http://php.net/manual/en/function.date.php для более формат

Надеюсь, что это поможет :)