【SQL】関数や演算を利用して日付や時刻の操作をする方法

MySQL

関数や演算を利用して日付や時刻の操作をする方法を紹介していきます。

現在の時刻を取得:current_time()

コマンド入力時の時刻を取得する方法です。

構文

select current_time();

出力結果

+----------------+
| current_time() |
+----------------+
| 08:49:40       |
+----------------+
1 row in set (0.000 sec)
n時間前の時刻を取得

コマンド入力時の時刻から5時間前の時刻を取得します。

select current_time() - interval 5 hour;

出力結果

+----------------------------------+
| current_time() - interval 5 hour |
+----------------------------------+
| 03:50:38                         |
+----------------------------------+
1 row in set (0.000 sec)
n時間後の時刻を取得

コマンド入力時の時刻から5時間前の時刻を取得します。

select current_time() + interval 5 hour;

出力結果

+----------------------------------+
| current_time() + interval 5 hour |
+----------------------------------+
| 13:51:46                         |
+----------------------------------+
1 row in set (0.000 sec)

現在の年月日を取得:current_date()

コマンド入力時の年月日を取得する方法です。

構文

select current_date();

出力結果

+----------------+
| current_date() |
+----------------+
| 2021-11-22     |
+----------------+
1 row in set (0.000 sec)
n日前の年月日を取得

コマンド入力時の年月日から5日前の年月日を取得します。

select current_date() - interval 5 day;

出力結果

+---------------------------------+
| current_date() - interval 5 day |
+---------------------------------+
| 2021-11-17                      |
+---------------------------------+
1 row in set (0.000 sec)
n日後の年月日を取得

コマンド入力時の年月日から5日後の年月日を取得します。

select current_date() + interval 5 day;

出力結果

+---------------------------------+
| current_date() + interval 5 day |
+---------------------------------+
| 2021-11-27                      |
+---------------------------------+
1 row in set (0.000 sec)
注意!

下記のように記述しても日付を取得することができるが月を跨ぐ場合には正常な日付を取得できないので使用しないこと。
× select current_date() + 5;

現在の年月日と時刻を取得:current_timestamp()

コマンド入力時の年月日と時刻を取得する方法です。

構文

select current_timestamp();

出力結果

+---------------------+
| current_timestamp() |
+---------------------+
| 2021-11-22 08:29:47 |
+---------------------+
1 row in set (0.001 sec)
current_timestamp()で日時や時刻を操作する

current_timestamp() は前述の数日前後や数時間前後の時刻の取得を両方とも利用することができる

5時間前の年月日と時刻

select current_timestamp() - interval 5 hour;

出力結果

+---------------------------------------+
| current_timestamp() - interval 5 hour |
+---------------------------------------+
| 2021-11-22 03:55:36                   |
+---------------------------------------+
1 row in set (0.000 sec)

5日後の年月日と時刻

select current_timestamp() + interval 5 day;

出力結果

+--------------------------------------+
| current_timestamp() + interval 5 day |
+--------------------------------------+
| 2021-11-27 08:57:00                  |
+--------------------------------------+
1 row in set (0.000 sec)

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