タイムスタンプを MySQL テーブルに挿入する

Mehvish Ashiq 2023年6月20日
  1. MySQL テーブルを作成する
  2. NOW() を使用してタイムスタンプを MySQL テーブルに挿入する
  3. CURRENT_TIMESTAMP() を使用してタイムスタンプを MySQL テーブルに挿入する
  4. MySQL テーブルの TIMESTAMP タイプ列に Null またはデフォルト値を設定する
タイムスタンプを MySQL テーブルに挿入する

今日は、テーブル定義に基づいて、MySQL テーブルの TIMESTAMP 型の列に日付と時刻を挿入する方法を学びます。

MySQL テーブルを作成する

まず、このチュートリアルで使用するテーブルを作成します。

コード例:

CREATE TABLE demo_one(
    demo_one_id INT NOT NULL,
    demo_one_timestamp TIMESTAMP NOT NULL,
    PRIMARY KEY(demo_one_id)
);

テーブル定義について詳しく知るには、次のように DESCRIBE を使用します。

クエリ:

DESCRIBE demo_one;

出力:

+--------------------+-----------+------+-----+---------+-------+
| Field              | Type      | Null | Key | Default | Extra |
+--------------------+-----------+------+-----+---------+-------+
| demo_one_id        | int       | NO   | PRI | NULL    |       |
| demo_one_timestamp | timestamp | NO   |     | NULL    |       |
+--------------------+-----------+------+-----+---------+-------+
2 rows in set (0.08 sec)

両方の属性が NULL 値を受け入れず、デフォルト値がないことがわかります。 これは、両方の列に値を挿入する必要があることを意味します。

NOW() を使用してタイムスタンプを MySQL テーブルに挿入する

TIMESTAMP を MySQL テーブルに挿入する最初の方法は NOW() です。

クエリ:

INSERT INTO demo_one (demo_one_id, demo_one_timestamp)
VALUES
(1, NOW());

SELECT ステートメントを使用して、現在のテーブル データを表示します。

クエリ:

SELECT * FROM demo_one;

出力:

+-------------+---------------------+
| demo_one_id | demo_one_timestamp  |
+-------------+---------------------+
|           1 | 2022-05-14 11:04:11 |
+-------------+---------------------+
1 row in set (0.00 sec)

CURRENT_TIMESTAMP() を使用してタイムスタンプを MySQL テーブルに挿入する

CURRENT_TIMESTAMP() メソッドを使用して、前に作成した MySQL テーブルに TIMESTAMP を挿入することもできます。

クエリ:

INSERT INTO demo_onE (demo_one_id, demo_one_timestamp)
VALUES
(2, CURRENT_TIMESTAMP());

以下のように SELECT ステートメントを使用して、テーブルのデータを表示できます。

クエリ:

SELECT * FROM demo_one;

出力:

+-------------+---------------------+
| demo_one_id | demo_one_timestamp  |
+-------------+---------------------+
|           1 | 2022-05-14 11:04:11 |
|           2 | 2022-05-14 11:06:01 |
+-------------+---------------------+
2 rows in set (0.03 sec)

MySQL テーブルの TIMESTAMP タイプ列に Null またはデフォルト値を設定する

TIMESTAMP 型の列に値を挿入したくない場合は、2つの方法でそれを行うことができます。 NULL 値を受け入れるように列を設定するか、列のデフォルト値を設定します。

コード例 (demo_two_timestamp フィールドの null 値を受け入れます):

CREATE TABLE demo_two(
    demo_two_id INT NOT NULL,
    # we can also write the following column definition
    # as `demo_two_timestamp TIMESTAMP NULL`
    demo_two_timestamp TIMESTAMP,
    PRIMARY KEY(demo_two_id)
);

INSERT INTO demo_two (demo_two_id, demo_two_timestamp) VALUES (1,null), (2, NOW());

SELECT * FROM demo_two;

出力:

+-------------+---------------------+
| demo_two_id | demo_two_timestamp  |
+-------------+---------------------+
|           1 | NULL                |
|           2 | 2022-05-14 11:15:18 |
+-------------+---------------------+
2 rows in set (0.04 sec)

ここで、demo_two_timestamp 列に値を挿入したくない場合は、NULL を使用できます。 特定のレコードに NULL を持たせたくない場合は、NOW() または CURRENT_TIMESTAMP() を使用して正しい値を挿入する柔軟性もあります。

コード例 (demo_three_timestamp フィールドのデフォルト値を設定):

CREATE TABLE demo_three(
    demo_three_id INT NOT NULL,
    demo_three_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(demo_three_id)
);

INSERT INTO demo_three (demo_three_id) VALUES (1);
INSERT INTO demo_three (demo_three_id, demo_three_timestamp) VALUES (2, NOW());
INSERT INTO demo_three (demo_three_id, demo_three_timestamp)
VALUES (3, CURRENT_TIMESTAMP());

SELECT * FROM demo_three;

出力:

+---------------+----------------------+
| demo_three_id | demo_three_timestamp |
+---------------+----------------------+
|             1 | 2022-05-14 11:21:57  |
|             2 | 2022-05-14 11:22:20  |
|             3 | 2022-05-14 11:22:40  |
+---------------+----------------------+
3 rows in set (0.00 sec)

demo_three_timestamp 列の値を入力したくない場合、または NULL を使用したくない場合は、上記の例で示したように、DEFAULT CURRENT_TIMESTAMP を使用してデフォルト値を設定できます。

著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

関連記事 - MySQL Table

関連記事 - MySQL Timestamp