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

MySQLで現在の日付・日時をDATETIME型に挿入する方法|CURDATE()とNOW()の使い方

MySQLでは、現在の日付や日時をテーブルに挿入する際に、組み込み関数を利用することで簡単に実現できます。日付のみを挿入したい場合は CURDATE() 関数を、日付と時刻の両方を挿入したい場合は NOW() 関数を使用します。

CURDATE()で現在の日付を挿入する

現在の日付(時刻を含まない)を挿入する場合は、MySQLの組み込み関数 CURDATE() を使用します。基本構文は以下のとおりです。

INSERT INTO yourTableName VALUES(CURDATE());

NOW()で現在の日付と時刻を挿入する

日付と時刻の両方を挿入したい場合は、組み込み関数 NOW() を使用します。構文は以下のとおりです。

INSERT INTO yourTableName VALUES(NOW());

実際に動作を確認してみよう

両方の構文の動作を理解するために、まずはサンプル用のテーブルを作成します。テーブル作成クエリは以下のとおりです。

mysql> CREATE TABLE NowAndCurdateDemo
   -> (
   -> YourDueDate DATETIME
   -> );
Query OK, 0 rows affected (1.75 sec)

DATETIME型のカラム「YourDueDate」を持つテーブルが作成できました。次に、CURDATE() と NOW() の両方を使って、それぞれデータを挿入してみます。

データの挿入

現在の日付を挿入するクエリは以下のとおりです。

mysql> INSERT INTO NowAndCurdateDemo VALUES(CURDATE());
Query OK, 1 row affected (0.28 sec)

mysql> INSERT INTO NowAndCurdateDemo VALUES(NOW());
Query OK, 1 row affected (0.14 sec)

挿入結果の確認

データが正しく挿入されたかどうかを、以下のSELECT文で確認しましょう。

mysql> SELECT * FROM NowAndCurdateDemo;

実行結果は以下のようになります。

+---------------------+
| YourDueDate         |
+---------------------+
| 2018-12-05 00:00:00 |
| 2018-12-05 21:24:10 |
+---------------------+
2 rows in set (0.06 sec)

結果の解説

出力結果を見ると、CURDATE() を使ったレコードには時刻部分が「00:00:00」として記録されていることがわかります。これは、CURDATE() が日付情報のみを返すためです。一方、NOW() を使ったレコードには挿入時点の日付と時刻が正確に記録されています。

このように、用途に応じて CURDATE() と NOW() を使い分けることで、現在の日付や日時を柔軟にデータベースへ保存することができます。

  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. PythonでMySQLに日付データを挿入する方法をわかりやすく解説

    PythonからMySQLデータベースに日付を挿入するには、まずテーブル側の準備が必要です。挿入先のカラムは DATE 型または DATETIME 型として定義しておきましょう。 日付を文字列に変換してから挿入する MySQLに日付を登録する際は、Pythonのdatetimeオブジェクトをそのまま渡すのではなく、あらかじめ文字列形式に変換しておく必要があります。この変換には、標準ライブラリ datetime モジュールが提供する strftime() メソッドを使うのが一般的です。 コード例 from datetime import datetime now = datetime.now(