MySQLのフィールドに現在の日付を設定する方法(UNIX_TIMESTAMP(now)の使い方)
MySQLでは、unix_timestamp()関数を使うことで、現在の日時をUNIXタイムスタンプとして取得し、テーブルのフィールドに簡単に設定できます。この記事では、実際にテーブルを作成し、現在の日付(UNIXタイムスタンプ)をフィールドに設定する手順を解説します。
UNIXタイムスタンプとは
UNIXタイムスタンプとは、1970年1月1日00:00:00 UTCからの経過秒数を表す数値です。日時を整数として扱えるため、比較や計算が容易になり、データベースでの時間管理によく利用されます。
サンプルテーブルの作成
まず、以下のようにCREATE TABLE文でテーブルを作成します。
mysql> create table DemoTable1894
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
DueTime int
);
Query OK, 0 rows affected (0.00 sec)ここでは、自動採番される「Id」カラムと、UNIXタイムスタンプを格納するためのint型の「DueTime」カラムを用意しています。
レコードの挿入
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable1894 values(); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1894 values(); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1894 values(); Query OK, 1 row affected (0.00 sec)
挿入したレコードの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1894;
実行すると、次のような出力が得られます。DueTimeにはまだ何も設定されていないため、NULLが表示されます。
+----+---------+ | Id | DueTime | +----+---------+ | 1 | NULL | | 2 | NULL | | 3 | NULL | +----+---------+ 3 rows in set (0.00 sec)
UNIX_TIMESTAMP(now())で現在の日付を設定する
いよいよ、UPDATE文とunix_timestamp(now())を使って、DueTimeフィールドに現在の日時のUNIXタイムスタンプを設定します。
mysql> update DemoTable1894 set DueTime=unix_timestamp(now()); Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
このクエリにより、テーブル内の全レコードのDueTimeに、実行時点のUNIXタイムスタンプが一括で書き込まれます。
更新結果の確認
もう一度SELECT文でテーブルの内容を確認しましょう。
mysql> select * from DemoTable1894;
実行結果は以下の通りです。すべての行に同じUNIXタイムスタンプが設定されていることがわかります。
+----+------------+ | Id | DueTime | +----+------------+ | 1 | 1576042722 | | 2 | 1576042722 | | 3 | 1576042722 | +----+------------+ 3 rows in set (0.00 sec)
まとめ
このように、unix_timestamp(now())を使用すれば、MySQLのフィールドに現在の日時をUNIXタイムスタンプ形式で簡単に設定できます。なお、特定のレコードだけ更新したい場合は、WHERE句を追加してください。また、日時を人間が読める形式で扱いたい場合は、FROM_UNIXTIME()関数でUNIXタイムスタンプを日時形式に変換することも可能です。
-
MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方
MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。1. テーブルを作成するまず、日付型(date)のカラムを持つテーブルを作成します。mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテ
-
MySQLでテーブルを作成し、現在の日付をデフォルト値として設定する方法
MySQLでは、テーブル作成時にDEFAULT制約を追加することで、カラムにデフォルト値を設定できます。日付型のカラムに対して現在の日付(CURRENT_DATE)をデフォルト値として指定すれば、レコード挿入時に明示的に値を渡さなくても自動的に当日の日付が登録されます。基本構文テーブルを作成し、DEFAULT制約を使ってデフォルト値を設定する際の基本的な構文は以下の通りです。CREATE TABLE yourTableName ( yourColumnName1 dataType not null , yourColumnName2 dataType default anyValue, . .