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

MySQLのTIMESTAMP型カラムのデフォルト値にCURRENT_DATE()は使用できる?

MySQLでTIMESTAMP型カラムのデフォルト値に現在の日付を設定したい場合、CURRENT_DATE()の代わりにCURRENT_TIMESTAMPを使用する必要があります。MySQLでは、TIMESTAMP型のデフォルト値としてCURRENT_TIMESTAMPが標準的にサポートされており、これによりレコード挿入時に現在の日時を自動的に登録できます。

テーブルの作成

まず、サンプル用のテーブルを作成しましょう。以下がそのクエリです。

mysql> create table defaultCurrent_DateDemo
-> (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20),
-> StudentAdmissionDate timestamp default CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.55 sec)

上記のクエリでは、「StudentAdmissionDate」カラムに対して「default CURRENT_TIMESTAMP」を指定しています。これにより、日付を明示的に指定せずにレコードを挿入した場合でも、自動的に現在の日時が登録されます。

レコードの挿入

次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。

mysql> insert into defaultCurrent_DateDemo(StudentName) values('Larry');
Query OK, 1 row affected (0.52 sec)

mysql> insert into defaultCurrent_DateDemo(StudentName,StudentAdmissionDate) values('Chris','2019-01-31');
Query OK, 1 row affected (0.18 sec)

1件目のレコード(Larry)では日付を指定していないため、デフォルト値のCURRENT_TIMESTAMPが適用されます。一方、2件目のレコード(Chris)では「2019-01-31」という日付を明示的に指定しています。

レコードの確認

SELECT文を使って、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from defaultCurrent_DateDemo;

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

+-----------+-------------+----------------------+
| StudentId | StudentName | StudentAdmissionDate |
+-----------+-------------+----------------------+
| 1 | Larry | 2019-04-02 19:38:19 |
| 2 | Chris | 2019-01-31 00:00:00 |
+-----------+-------------+----------------------+
2 rows in set (0.00 sec)

出力結果を見ると、LarryのレコードにはINSERT文を実行した時点の日時(2019-04-02 19:38:19)が自動的に設定されていることがわかります。このように、TIMESTAMP型カラムのデフォルト値にCURRENT_TIMESTAMPを指定すれば、現在の日時を簡単に自動登録することが可能です。CURRENT_DATE()はデフォルト値として直接使用できないため、注意が必要です。

  1. JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法

    executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手

  2. MySQLクエリでテーブル列の日付形式を変更する方法

    MySQLクエリでテーブル列の日付形式を変更する方法 MySQLでテーブルに保存された日付の表示形式を変更するには、DATE_FORMAT()関数を使用します。この記事では、サンプルテーブルを作成し、実際に日付形式を変換するまでの手順をサンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、datetime型の列を持つテーブルを作成しましょう。 mysql> create table DemoTable1906 ( DueTime datetime ); Query OK, 0 rows affected (0.00 sec) 2.