MySQLで現在の時刻を取得する方法!(CURTIME関数)

MySQL MySQL

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関数を使って、テーブルの下記のカラムに、それぞれがどのように登録されるかを確認してみます。

・数値型(INT)
・文字列(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関数を呼ぶ。
・CURTIME関数に引数を渡すと、小数秒を返す。
・CURRENT_TIMEやCURRENT_TIME関数は別名なので、同じように動作する。
・INT型のカラムにCURTIMEの結果を入れると、数値として登録される。

コメント

タイトルとURLをコピーしました