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 -尼斯:我的解决方案让一天为零,但我不认为一年也可以是零;这要干净得多。