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

MySQLデータベースに日付を保存する最も簡単な方法とは?STR_TO_DATE()の使い方を解説

MySQLデータベースに日付を保存する際、文字列形式の日付(例:10/01/2013)をそのまま挿入すると、フォーマットの違いによってエラーが発生したり、意図しない値が保存されたりすることがあります。そんなときに便利なのが STR_TO_DATE() 関数です。この関数を使えば、任意の形式の日付文字列をMySQLのDATE型に変換して保存できます。

STR_TO_DATE()の基本構文

日付を保存するには、以下のように STR_TO_DATE() メソッドを使用します。

insert into テーブル名 values(STR_TO_DATE('日付', '%d/%m/%Y'));

第2引数の %d/%m/%Y は、入力される日付文字列の形式を指定しています。それぞれの意味は以下の通りです。

  • %d … 日(01〜31)
  • %m … 月(01〜12)
  • %Y … 4桁の年(例:2019)

実際にテーブルを作成してみよう

まず、日付を保存するためのテーブルを作成します。

mysql> create table DemoTable
(
    AdmissionDate date
);
Query OK, 0 rows affected (0.62 sec)

ここでは、入学日(AdmissionDate)を保存する DATE 型のカラムを持つテーブル「DemoTable」を作成しました。

STR_TO_DATE()を使ってレコードを挿入する

次に、insertコマンドと STR_TO_DATE() を組み合わせて、複数の日付データを挿入します。

mysql> insert into DemoTable values(STR_TO_DATE('10/01/2013', '%d/%m/%Y'));
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values(STR_TO_DATE('31/01/2015', '%d/%m/%Y'));
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(STR_TO_DATE('23/04/2019', '%d/%m/%Y'));
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(STR_TO_DATE('01/03/2019', '%d/%m/%Y'));
Query OK, 1 row affected (0.48 sec)

このように、「日/月/年」の形式で記述された日付文字列でも、正しくDATE型に変換されて保存されます。

保存されたデータを確認する

selectコマンドでテーブルの内容を表示して確認しましょう。

mysql> select *from DemoTable;

実行結果は以下の通りです。

+---------------+
| AdmissionDate |
+---------------+
| 2013-01-10    |
| 2015-01-31    |
| 2019-04-23    |
| 2019-03-01    |
+---------------+
4 rows in set (0.00 sec)

まとめ

MySQLに日付を保存する最も簡単な方法は、STR_TO_DATE() 関数を使って日付文字列をDATE型に変換することです。入力データの形式に合わせてフォーマット指定子(%d、%m、%Yなど)を変更すれば、さまざまな形式の日付に対応できます。日付関連のエラーを防ぎ、データの一貫性を保つために、ぜひ活用してください。

  1. MySQLでデータベース内のテーブル数を表示するクエリの書き方

    INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す

  2. Python×MySQLのrollback()メソッドとは?トランザクションの取り消し方法を解説

    Pythonには、データベースのトランザクションを制御するためのさまざまなメソッドが用意されています。その中でも本記事で取り上げるのがrollback()メソッドです。 rollback()メソッドとは rollback()メソッドは、データベースに対して行った直近の変更やコミットを取り消し(ロールバック)するために使用されます。たとえば、ユーザーがデータベースへの変更に満足できなかった場合や、トランザクションが何らかの理由で失敗した場合に、このメソッドを実行することで、変更を加える前の元の状態へデータベースを復元できます。 トランザクションが失敗した際にデータの整合性を保つために非常に重要な