MySQLで現在の時刻を取得する方法について書いています。
現在の時刻を取得するには、CURTIME関数を使います。
公式のこちらにCURTIME関数についての記事があります。
載せているSQLはMySQLのバージョン8.0.32を使って動作を確認しています。
MySQLで現在の時刻を取得する
MySQLで現在の時刻を取得するには、CURTIME関数を呼び出します。
SELECT CURTIME();
CURTIME関数を呼ぶだけで、現在の時分秒を返してくれます。
mysql> SELECT CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 11:39:08 |
+-----------+
1 row in set (0.01 sec)
現在の時分秒「11:39:08
」が返ってきました。
コロンを省く
コロンをつけずに「時分秒」のみを返したいときには、「+ 0」すると良いです。
mysql> SELECT CURTIME() + 0;
+---------------+
| CURTIME() + 0 |
+---------------+
| 115141 |
+---------------+
1 row in set (0.00 sec)
現在の時分秒がコロンを省略して返ってきます。
上記では「11時51分41秒
」が返ってきています。
引数を指定すると少数秒が返ってくる
引数には0から6までの値を指定することができます。
引数を渡すと、少数秒がついて返ってきます。
mysql> SELECT CURTIME(3);
+--------------+
| CURTIME(3) |
+--------------+
| 11:50:36.500 |
+--------------+
1 row in set (0.00 sec)
CURRENT_TIME関数は別名
CURRENT_TIMEやCURRENT_TIME関数は、CURTIME関数の別名です。
そのため、下記のように実行すると、どのカラムも同じ結果です。
SELECT CURRENT_TIME, CURRENT_TIME(), CURTIME();
実行すると、このように、どれを使っても同じ結果が返ってきました。
mysql> SELECT CURRENT_TIME, CURRENT_TIME(), CURTIME();
+--------------+----------------+-----------+
| CURRENT_TIME | CURRENT_TIME() | CURTIME() |
+--------------+----------------+-----------+
| 11:54:11 | 11:54:11 | 11:54:11 |
+--------------+----------------+-----------+
1 row in set (0.00 sec)
CURTIME関数を使って登録確認
CURTIME関数を使って、テーブルの下記のカラムに、それぞれがどのように登録されるかを確認してみます。
・文字列(VARCHAR)
・時間型(TIME)
temporary_time
テーブルを作成しました。
CURTIME関数でデータを登録するため、それぞれの型のカラムを用意しました。
CREATE TABLE temporary_time (
time_number INT,
time_string VARCHAR(20),
time_time TIME
);
全てのカラムにCURTIME関数でデータを登録します。
下記のINSERT文を実行してみます。
INSERT INTO temporary_time VALUE (CURTIME(), CURTIME(), CURTIME());
登録した後にSELECT文でレコードを取得してみました。
全てのカラムにデータが登録されました。
time_number | time_string | time_time |
---|---|---|
115851 | 11:58:51 | 11:58:51 |
数値型(INT)のカラムに関しては、コロンが消えて、数値としてデータが登録されました。
MySQLで時刻を取得する方法まとめ
今回はMySQLで現在の時刻を取得する方法について確認しました。
記事の内容をまとめると、下記のようになります。
・CURTIME関数に引数を渡すと、小数秒を返す。
・CURRENT_TIMEやCURRENT_TIME関数は別名なので、同じように動作する。
・INT型のカラムにCURTIMEの結果を入れると、数値として登録される。
コメント