MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのSTR_TO_DATE()関数でフォーマット指定子を設定し、文字列を日付に変換する方法

MySQLでは、STR_TO_DATE()関数を使用することで、文字列を日付値に変換できます。この関数を使う際は、元の文字列の形式に合わせてフォーマット指定子を正しく設定することが重要です。

基本構文

文字列を日付に変換するSTR_TO_DATE()関数の基本的な構文は以下の通りです。

select STR_TO_DATE(カラム名, 'フォーマット指定子') from テーブル名;

それでは、実際にサンプルを使って手順を見ていきましょう。

ステップ1:テーブルを作成する

まず、日付として扱いたい文字列を格納するテーブルを作成します。

mysql> create table DemoTable
-> (
-> AdmissionDate varchar(100)
-> );
Query OK, 0 rows affected (0.55 sec)

ここでは、AdmissionDate(入学日)というvarchar型のカラムを持つ「DemoTable」を作成しました。

ステップ2:レコードを挿入する

insertコマンドを使用して、テーブルにいくつかのレコードを追加します。ここでは「日-月-年」の形式で日付を登録します。

mysql> insert into DemoTable values('01-12-2019');
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable values('15-06-2019');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable values('21-01-2016');
Query OK, 1 row affected (0.19 sec)

ステップ3:レコードを確認する

select文を実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

出力結果

+---------------+
| AdmissionDate |
+---------------+
| 01-12-2019    |
| 15-06-2019    |
| 21-01-2016    |
+---------------+
3 rows in set (0.00 sec)

この時点では、日付はまだ文字列(varchar型)として保存されています。

STR_TO_DATE()で文字列を日付に変換する

次に、STR_TO_DATE()関数を使って文字列を日付に変換します。ここでは、挿入した文字列の形式「日-月-年」に対応させて、フォーマット指定子「%d-%m-%Y」を設定します。

mysql> select STR_TO_DATE(AdmissionDate,'%d-%m-%Y') from DemoTable;

出力結果

+---------------------------------------+
| STR_TO_DATE(AdmissionDate,'%d-%m-%Y') |
+---------------------------------------+
| 2019-12-01                            |
| 2019-06-15                            |
| 2016-01-21                            |
+---------------------------------------+
3 rows in set (0.04 sec)

文字列が「YYYY-MM-DD」形式の日付値に正しく変換されていることがわかります。

主なフォーマット指定子一覧

STR_TO_DATE()でよく使われるフォーマット指定子は以下の通りです。

  • %d … 日(01〜31)
  • %m … 月(01〜12)
  • %Y … 4桁の年(例:2019)
  • %y … 2桁の年(例:19)
  • %H … 時(00〜23)
  • %i … 分(00〜59)
  • %s … 秒(00〜59)

元の文字列の並び順や区切り文字と一致するようにフォーマット指定子を組み合わせることで、さまざまな形式の日付文字列を柔軟に変換できます。

  1. MySQLで日付形式を変換する方法|STR_TO_DATE()関数の使い方を解説

    MySQLでは、VARCHAR型などで保存された文字列の日付データを、正しい日付・時刻形式に変換したいケースがよくあります。そんなときに活躍するのが STR_TO_DATE() 関数です。この記事では、実際のSQL例とともに具体的な使い方を解説します。サンプルテーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable2010 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.68 sec)テストデータの挿入INSERT文を使って、「日/月/年 時:分:秒」

  2. C#の長い日付(D)形式指定子の使い方を解説

    C#における「D」形式指定子は、日付と時刻を長い形式の文字列として表示するための標準書式指定子です。この指定子を使用すると、曜日や月名まで含んだ、読みやすい詳細な日付表現を簡単に取得できます。D形式指定子の仕組み「D」形式指定子は、カルチャ(culture)ごとに定義された DateTimeFormatInfo.LongDatePattern プロパティに基づいてカスタム日時書式文字列を生成します。つまり、実行環境のカルチャ設定によって出力される日付の形式が自動的に変わる仕組みです。たとえば、英語(米国)カルチャの場合、対応するカスタム書式文字列は以下のようになります。dddd, dd MMM