如何在mysql中使用sql查询提取月份。 日期格式如下:dd / mm / yyyy。
MONTH(datecol) = $month // this does not work.
但是,如果我将日期格式更改为yyyy-mm-dd
,则可以使用,但这不是一个选项。
答案 0 :(得分:4)
您可以使用str_to_date
将任何格式的日期解析为SQL日期值。例如:
select month(str_to_date('25/07/2013', '%d/%m/%Y'));
答案 1 :(得分:3)
此表达式将提取出现在第一个和第二个正斜杠之间的字符串部分。
SUBSTRING_INDEX(SUBSTRING_INDEX( '25/07/2013' ,'/',2),'/',-1)
将返回'07'
要将此转换为数字,请为其添加零,
SUBSTRING_INDEX(SUBSTRING_INDEX( '25/07/2013' ,'/',2),'/',-1) + 0
将返回7
备注强>
此表达式适用于任何字符串值,而不仅仅是表示指定格式的有效日期的字符串。例如:
SUBSTRING_INDEX(SUBSTRING_INDEX( 'dd/mm/yyyy' ,'/',2),'/',-1)
将返回'mm'
如果在字符串中只找到一个斜杠,则返回斜杠后面的部分。如果在字符串中没有找到斜杠,则返回整个字符串。
如果您的目的是验证字符串是否以指定格式表示有效日期值,则可以使用STR_TO_DATE()
函数将字符串转换为DATE
。该表达式的返回可以用作任何带有DATE
参数的MySQL函数的参数,例如示例问题中的MONTH()
函数。