mysql で sql クエリを使用して月を抽出するにはどうすればよいですか。日付の形式は、dd/mm/yyyy です。
MONTH(datecol) = $month // this does not work.
ただし、日付形式を変更するyyyy-mm-dd
と機能しますが、これはオプションではありません。
を使用して、任意の形式の日付を SQL 日付値に解析できますstr_to_date
。例えば:
select month(str_to_date('25/07/2013', '%d/%m/%Y'));
この式は、最初と 2 番目のスラッシュの間に現れる文字列の部分を抽出します。
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'
文字列にスラッシュが 1 つしかない場合は、スラッシュに続く部分が返されます。文字列にスラッシュが見つからない場合、これは文字列全体を返します。
文字列が指定された形式で有効な日付値を表していることを検証することが目的の場合、STR_TO_DATE()
関数を使用して文字列をDATE
. その式からの戻り値は、サンプルの質問DATE
の関数など、引数を取る任意の MySQL 関数への引数として使用できます。MONTH()