MySQLでドット区切りの日付文字列を日付型に変換する方法|STR_TO_DATE関数の使い方
MySQLで「01.10.2019」のようなドット(.)区切りの日付文字列を日付型として扱いたい場合は、STR_TO_DATE()関数を使用します。この記事では、実際にテーブルを作成し、文字列の日付データを日付型に変換する手順を具体的に解説します。
1. サンプルテーブルの作成
まず、日付を文字列(varchar型)として格納するテーブルを作成します。
mysql> create table DemoTable1445
-> (
-> AdmissionDate varchar(20)
-> );
Query OK, 0 rows affected (0.46 sec)2. テストデータの挿入
次に、INSERT文を使ってドット区切りの日付文字列を登録します。
mysql> insert into DemoTable1445 values('01.10.2019');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1445 values('31.12.2018');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1445 values('01.02.2017');
Query OK, 1 row affected (0.11 sec)3. 登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1445;
実行結果は以下の通りです。
+---------------+ | AdmissionDate | +---------------+ | 01.10.2019 | | 31.12.2018 | | 01.02.2017 | +---------------+ 3 rows in set (0.00 sec)
4. STR_TO_DATE()で文字列を日付型に変換
ここからが本題です。STR_TO_DATE()関数にフォーマット指定子「%.%.%」を渡すことで、ドット区切りの文字列を日付型に変換できます。UPDATE文で既存データを一括変換します。
mysql> update DemoTable1445 set AdmissionDate=str_to_date(AdmissionDate,'%.%.%'); Query OK, 3 rows affected (0.15 sec) Rows matched: 3 Changed: 3 Warnings: 0
5. 変換結果の確認
再度テーブルの中身を確認します。
mysql> select * from DemoTable1445;
実行結果は以下の通りです。日付が「YYYY-MM-DD」形式に変換されていることがわかります。
+---------------+ | AdmissionDate | +---------------+ | 2019-10-01 | | 2018-12-31 | | 2017-02-01 | +---------------+ 3 rows in set (0.00 sec)
補足:より正確なフォーマット指定について
上記の例では簡易的に「%.%.%」を使用しましたが、実務では%d.%m.%Yのように各部分の意味を明示することをおすすめします。「%d」は日、「%m」は月、「%Y」は4桁の年を表します。明示的な指定により、意図しない解釈を防ぎ、可読性も向上します。
mysql> update DemoTable1445 set AdmissionDate=str_to_date(AdmissionDate,'%d.%m.%Y');
また、変換後のカラムをDATE型に変更しておくと、日付関数や範囲検索を効率的に利用できるようになります。
-
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文を使って、「日/月/年 時:分:秒」
-
C#の長い日付(D)形式指定子の使い方を解説
C#における「D」形式指定子は、日付と時刻を長い形式の文字列として表示するための標準書式指定子です。この指定子を使用すると、曜日や月名まで含んだ、読みやすい詳細な日付表現を簡単に取得できます。D形式指定子の仕組み「D」形式指定子は、カルチャ(culture)ごとに定義された DateTimeFormatInfo.LongDatePattern プロパティに基づいてカスタム日時書式文字列を生成します。つまり、実行環境のカルチャ設定によって出力される日付の形式が自動的に変わる仕組みです。たとえば、英語(米国)カルチャの場合、対応するカスタム書式文字列は以下のようになります。dddd, dd MMM