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() を使い分けることで、現在の日付や日時を柔軟にデータベースへ保存することができます。
-
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文を使って、「日/月/年 時:分:秒」
-
PythonでMySQLに日付データを挿入する方法をわかりやすく解説
PythonからMySQLデータベースに日付を挿入するには、まずテーブル側の準備が必要です。挿入先のカラムは DATE 型または DATETIME 型として定義しておきましょう。 日付を文字列に変換してから挿入する MySQLに日付を登録する際は、Pythonのdatetimeオブジェクトをそのまま渡すのではなく、あらかじめ文字列形式に変換しておく必要があります。この変換には、標準ライブラリ datetime モジュールが提供する strftime() メソッドを使うのが一般的です。 コード例 from datetime import datetime now = datetime.now(