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

MySQLで現在の日時から10日を引く方法【DATE_SUB関数の使い方】

MySQLでは、現在の日時から指定した日数を簡単に減算できます。この記事では、now()関数とDATE_SUB()関数を使って、現在の日時から10日前の日時を取得する方法を解説します。

1. 現在の日時を取得する

まず、now()関数を使って現在の日時を取得しましょう。

mysql> select now();

実行結果は以下のとおりです。

+---------------------+
| now()               |
+---------------------+
| 2018-11-01 19:55:56 |
+---------------------+
1 row in set (0.00 sec)

2. DATE_SUB()関数で10日を引く

現在の日時から10日を減算するには、DATE_SUB()関数を使用します。基本構文は以下のとおりです。

select DATE_SUB(now(), interval integer_value day);

integer_valueの部分に、減算したい日数を指定します。実際に現在の日時から10日を引いてみましょう。

mysql> select DATE_SUB(now(), interval 10 day);

実行結果:

+---------------------------------+
| DATE_SUB(now(), interval 10 day) |
+---------------------------------+
| 2018-10-22 19:56:07             |
+---------------------------------+
1 row in set (0.00 sec)

このように、2018年11月1日から10日を引いた「2018年10月22日」が返されていることがわかります。

3. 応用:INTERVALの単位を変える

DATE_SUB()関数は、日数以外にもさまざまな単位で減算できます。

  • 1時間前を取得: DATE_SUB(now(), interval 1 hour)
  • 1か月前を取得: DATE_SUB(now(), interval 1 month)
  • 1年前を取得: DATE_SUB(now(), interval 1 year)

また、逆に日時を加算したい場合はDATE_ADD()関数を使うことで、同じ書式で日時の加算が可能です。日付の計算を自動化したい場合に非常に便利な関数なので、ぜひ活用してください。

  1. MySQLでDATETIME型から日付のみを抽出する方法

    MySQLのDATETIME型カラムから日付部分だけを取り出したい場合、DATE_FORMAT()関数と書式指定子を組み合わせるのが便利です。使用する主な書式指定子は以下の通りです。%d … 日(01〜31)%m … 月(01〜12)%Y … 年(4桁)それでは、実際にサンプルテーブルを作成して確認してみましょう。1. テーブルの作成mysql> create table DemoTable ( AdmissionDate datetime ); Query OK, 0 rows affected (0.52 sec)DATETIME型のカラム「AdmissionDate」を持つ

  2. MySQLで現在の日付から1日以上の行を抽出する方法(INTERVALの使い方)

    現在の日時を基準に「1日前以降」のデータを取得したい場合は、MySQLのINTERVALを使うと簡単に実現できます。この記事では、サンプルテーブルを作成し、実際に条件に合う行を抽出するまでの手順を順番に解説します。 1. 現在の日付を確認する まず、CURDATE()関数で現在の日付を確認しておきましょう。 mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-11-29 | +------------+ 1 row in set (0.00 sec) 現在の日付は「2019-11-29」