MySQL で月と年の抽出を使用して VARCHAR を日付に変換する
日付を表す VARCHAR 値を日付のみの値に変換するにはMySQL では、STR_TO_DATE 関数と DATE_FORMAT 関数を利用できます。ただし、特に YYMM 形式の月と年のみが必要な場合は、アプローチを変更する必要があります。
STR_TO_DATE 変換のエラーを修正する
STR_TO_DATE の使用法「mm/dd/yyyy」形式の値を変換しようとします。ただし、サンプルの入力値 (「1/9/2011」) はこの形式と一致しません。その結果、「2009-01-00」のような予期しない出力が得られます。
解決策: DATE_FORMAT と STR_TO_DATE を使用する
YYMM 形式で月と年を取得するには、DATE_FORMAT 関数と STR_TO_DATE 関数を次のように組み合わせることができます。
SELECT DATE_FORMAT(str_to_date('1/9/2011', '%d/%m/%Y'), '%Y%m');
この式は、入力 VARCHAR 値を日付に変換し、「yyyymm」としてフォーマットします。最終的な結果は、ご希望どおり '201101' になります。
補足:
日 (dd)、月 (mm)、年 ( STR_TO_DATE 関数内の yyyy) は、入力 VARCHAR 値の形式と一致する必要があります。順序が異なる場合は、フォーマット文字列を適宜調整してください。
以上がMySQL で VARCHAR 日付から YYMM 形式で月と年を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。