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()はデフォルト値として直接使用できないため、注意が必要です。
-
JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法
executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手
-
MySQLクエリでテーブル列の日付形式を変更する方法
MySQLクエリでテーブル列の日付形式を変更する方法 MySQLでテーブルに保存された日付の表示形式を変更するには、DATE_FORMAT()関数を使用します。この記事では、サンプルテーブルを作成し、実際に日付形式を変換するまでの手順をサンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、datetime型の列を持つテーブルを作成しましょう。 mysql> create table DemoTable1906 ( DueTime datetime ); Query OK, 0 rows affected (0.00 sec) 2.