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

MySQLで日付・時刻を加算するには?DATE_ADD関数とINTERVAL演算子の使い方

MySQLで日付に時間を加算する方法

MySQLで現在時刻などに一定の時間を加算したい場合は、DATE_ADD()関数を使用します。SQL Serverなどで使われる「DATEADD」という名前の関数はMySQLには存在しないため、注意が必要です。

DATE_ADD()関数の基本構文

DATE_ADD()関数の基本的な構文は以下の通りです。

DATE_ADD(NOW(), INTERVAL 加算する値 MINUTE);

第1引数に対象の日付(ここではNOW()で現在日時)、第2引数にINTERVALキーワードを使って加算する値と単位を指定します。単位はMINUTE以外にも、SECOND、HOUR、DAY、MONTH、YEARなど様々なものが利用可能です。

算術演算子を使った方法

実は、DATE_ADD()関数を使わなくても、+演算子とINTERVALを組み合わせることで同じ結果が得られます。こちらの方が記述がシンプルで、多くの場面で好まれています。

NOW() + INTERVAL 30 MINUTE

DATE_ADD()関数の実行例

それでは、実際にDATE_ADD()関数を使って現在時刻に30分を加算してみましょう。

クエリ:

mysql> select date_add(now(), interval 30 minute);

実行結果:

+-------------------------------------+
| date_add(now(), interval 30 minute) |
+-------------------------------------+
| 2019-02-27 15:38:27                 |
+-------------------------------------+
1 row in set (0.00 sec)

このように、実行した時点の現在日時に30分が加算された値が返されます。

+演算子を使った実行例

次に、DATE_ADD()関数の代わりに+演算子を使ってみます。まず、比較用として現在時刻を確認します。

クエリ:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-02-27 15:09:18 |
+---------------------+
1 row in set (0.00 sec)

このNOW()に30分を加算します。

クエリ:

mysql> select now()+interval 30 minute;

実行結果:

+--------------------------+
| now()+interval 30 minute |
+--------------------------+
| 2019-02-27 15:39:33      |
+--------------------------+
1 row in set (0.00 sec)

15時09分18秒から30分後の15時39分33秒が正しく表示されました。

まとめ

  • MySQLでは「DATEADD」ではなくDATE_ADD()関数を使用する
  • NOW() + INTERVAL 30 MINUTEのように、+演算子でも同様の計算が可能
  • 単位はMINUTEのほか、DAYやHOURなども指定できる

どちらの方法でも結果は同じなので、可読性やチームのコーディング規約に合わせて使い分けるとよいでしょう。

  1. MySQLで行を削除する方法|DELETE文の基本と実行例を解説

    MySQLでテーブルから特定の行(レコード)を削除するには、DELETE文を使用します。この記事では、実際にサンプルテーブルを作成し、DELETE文を使って行を削除する手順を順番に解説します。1. サンプルテーブルの作成まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName varchar(100), -> Cus

  2. MySQLクエリの入力方法|基本ルールから複数行クエリまで解説

    MySQLクエリの入力方法コンソールでクエリを入力する前に、まずサーバーに正しく接続できているかを確認することが重要です。以下のクエリを実行すると、使用中のサーバーのバージョン番号と現在の日付が表示されます。mysql> SELECT VERSION(), CURRENT_DATE;ポイント:関数「VERSION()」や「CURRENT_DATE」は大文字・小文字を区別しません。つまり、「version()」「Version()」「vERsion()」など、いずれも同じ意味として処理されます。「CURRENT_DATE」についても同様です。MySQLクエリ実行時の基本ルールSQLクエリの