MySQL で文字列を日付形式に変換する

Mehvish Ashiq 2023年1月30日
  1. MySQL で文字列を日付形式に変換する
  2. まとめ
MySQL で文字列を日付形式に変換する

この記事では、DATE として機能する文字列型の値を DATE 型の値に変換するためのさまざまな関数について説明します。また、MySQL の STR_TO_DATE()CONVERT()、および CAST() 関数を使用して、いくつかのサンプルコードで練習します。

MySQLV8.0.27 を使用しています。ここから新しいものを入手できます(利用可能な場合)

MySQL で文字列を日付形式に変換する

MySQL で文字列を DATE 形式に変換する次の方法を学習します。

MySQL STR_TO_DATE() 関数

この関数は、str(文字列)を DATE 値に変換します。DATE の形式は、文字列の形式に従います。たとえば、MM/DD/YYYY を文字列型から DATE 型に変換すると、DATEMM/DD/YYYY 形式になります。

STR_TO_DATE() 関数は、入力と文字列形式に基づいて、DATEDATETIME、または TIME の値を返すことができます。以下の例を参照して、出力と比較してください。

SELECT STR_TO_DATE('2021-08-23', '%Y-%m-%d');

出力:

mysql で文字列を日付形式に変換します-strto date output one

フォーマットを変更するとどうなりますか?ダッシュコンマに置き換えましょう。

SELECT STR_TO_DATE('2021-08-23', '%Y,%m,%d');

出力:

mysql で文字列を日付形式に変換します-strto date error one

上記の出力を参照してください。NULL が返されました。フォーマットのみを YYYY-MM-DD から DD-MM-YYYY に変更しましょう。

SELECT STR_TO_DATE('2021-08-23', '%d-%m-%Y');

出力:

mysql で文字列を日付形式に変換します-strto date error two

ほら、また NULL を返しました。つまり、入力文字列と同じ DATE 形式が必要です。TIME もあるとどうなりますか?次のコマンドを実行してみましょう。

SELECT STR_TO_DATE('2021-08-23 10:12:23', '%Y-%m-%d %T');

出力:

mysql で文字列を日付形式に変換します-strto date output two

STR_TO_DATE() 関数はテキストを無視し、DATE のみを出力します。次の例を参照してください。

SELECT STR_TO_DATE('2021-08-23 some other string', '%Y-%m-%d') as Date;

出力:

mysql で文字列を日付形式に変換します-strto date output 4-

年を抽出することもできます。年を抽出すると、日と月がゼロに設定されます。次のコードと出力を参照してください。

SELECT STR_TO_DATE('2021-08-23', '%Y') as Year; #get year

出力:

mysql で文字列を日付形式に変換します-strto date output 5

MySQL CONVERT() 関数

変換関数は、指定された値を指定された文字セットまたはデータ型に変換できます。データ型の詳細はこちらで確認できます。

SELECT CONVERT("2021-08-19", DATE); #convert to DATE
SELECT CONVERT("2021-08-19", DATETIME); #convert to DATETIME
SELECT CONVERT("2021-08-19", TIME); #convert to TIME

出力:

mysql で文字列を日付形式に変換します-出力を変換します

MySQL CAST() 関数

この関数は、任意のタイプ(文字列、整数、またはその他のもの)の入力を任意の指定されたデータ型に変換します。パラメータ値の詳細はこちらで確認できます。

SELECT CAST("2021-08-29" AS DATE) as date; #convert to date type
SELECT CAST("2021-08-29 11:12:45" AS DATETIME) as datetime; #convert to datetime type
SELECT CAST("11:12:45" AS TIME) as time; #convert to time type

出力:

mysql で文字列を日付形式に変換します-出力をキャストします

まとめ

プロジェクトの要件に従って、文字列値を DATETIME、および DATETIME に変換する方法は複数ある可能性があると結論付けました。変換を目的とした STR_TO_DATECONVERT、および CAST 関数について学習しました。

著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

関連記事 - MySQL Date