MYSQL:如何将字符串转换为月份(数字)

MYSQL:如何将字符串转换为月份(数字),mysql,string-conversion,date-conversion,Mysql,String Conversion,Date Conversion,我有月的简短版本:一月、二月、三月等 并将它们转换为相应的数值:1、2、3,等等 此外,我希望能够在数字月份值之间来回更改,将其更改为“短”月份名称(JAN、FEB、MAR)和长版本(一月、二月、三月等) 注意:正如@dipu raj指出的,这不是重复,因为我的问题与相反,答案也不同,因为它需要不同的函数您可能需要熟悉MySQL日期函数。对于您的情况,STR\u TO\u DATE()和DATE\u FORMAT()似乎是最有用的。以下是信息的链接: 一月至其月数;在下面的FEB处替换您的列/

我有月的简短版本:
一月、二月、三月等

并将它们转换为相应的数值:
1、2、3
,等等

此外,我希望能够在数字月份值之间来回更改,将其更改为“短”月份名称(
JAN、FEB、MAR
)和长版本(
一月、二月、三月等)




注意:正如@dipu raj指出的,这不是重复,因为我的问题与相反,答案也不同,因为它需要不同的函数

您可能需要熟悉MySQL日期函数。对于您的情况,
STR\u TO\u DATE()
DATE\u FORMAT()
似乎是最有用的。以下是信息的链接:


一月至其月数;在下面的
FEB
处替换您的列/值:

date_format(str_to_date(concat(2012, 'FEB'), '%Y%b'), '%m')
                                     ^^^^^
1到其短月份名称;在指示的位置替换您的列/值:

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

使用
%M
而不是
%b
作为上面的最后一个值来获取长月份名称。

要将缩写转换为完整月份名称,请使用:

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 |
+--------------------------------+
试试这个:

    $date = 'Jan';
    echo 'Month number is '.date('n', strtotime($date)).'</br>';
    echo 'and its '.date('F', strtotime($date));
$date='Jan';
回显“月号为”。日期('n',标准时间($date))。
; echo及其日期('F',strottime($date));

用于更多格式选项。

此问题与标记的问题不同。这里是询问如何从月份名称转换为月份号码,但标记问题有答案,从月数到月名。+ 1 -尼斯:我的解决方案让一天为零,但我不认为一年也可以是零;这要干净得多。