MySQLで日付から日数を減算する方法|DATE_SUB関数の使い方を実例付きで解説
MySQLで日付から日数を引くことはできますか?
はい、可能です。MySQLでは DATE_SUB() 関数を使うことで、日付から指定した日数を簡単に減算できます。この記事では、基本的な構文から実際のテーブルを使った実行例まで、順を追ってわかりやすく解説します。
DATE_SUB() の基本構文
日付から日数を引く場合の基本構文は以下のとおりです。
SELECT DATE_SUB(カラム名, INTERVAL 減算する日数 DAY) FROM テーブル名;
第1引数に対象の日付(カラム)、第2引数に INTERVAL キーワードと減算したい日数を指定します。「day」の部分を「month」や「year」に変更すれば、月や年単位の減算も可能です。
サンプルテーブルの作成
まず、動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable660(AdmissionDate datetime); Query OK, 0 rows affected (0.82 sec)
次に、INSERT文を使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable660 values('2018-01-24');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable660 values('2019-07-10');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable660 values('2020-11-20');
Query OK, 1 row affected (0.59 sec)登録データの確認
SELECT文ですべてのレコードを表示して、正しく登録されているか確認します。
mysql> select *from DemoTable660;
実行結果は以下のとおりです。
+---------------------+ | AdmissionDate | +---------------------+ | 2018-01-24 00:00:00 | | 2019-07-10 00:00:00 | | 2020-11-20 00:00:00 | +---------------------+ 3 rows in set (0.00 sec)
日付から5日間を減算するクエリ
それでは、DATE_SUB() を使って各日付から5日間を引いてみましょう。
mysql> select date_sub(AdmissionDate,Interval 5 day) from DemoTable660;
実行結果は以下のとおりです。
+----------------------------------------+ | date_sub(AdmissionDate,Interval 5 day) | +----------------------------------------+ | 2018-01-19 00:00:00 | | 2019-07-05 00:00:00 | | 2020-11-15 00:00:00 | +----------------------------------------+ 3 rows in set (0.00 sec)
出力結果を見ると、それぞれの日付がきちんと5日ずつ減算されていることがわかります(例:2018-01-24 → 2018-01-19)。
補足:DATE_ADD() との関係
なお、逆に日付へ日数を加算したい場合は DATE_ADD() 関数を使用します。また、DATE_SUB() に負の値を渡すことで加算として動作させることもできるため、状況に応じて使い分けると便利です。
-
MySQLで現在の日付に11日を追加する方法【DATE_ADD関数の使い方】
はじめにMySQLでは、DATE_ADD()関数を使うことで、日付に指定した日数を簡単に加算できます。本記事では、現在の日付(CURDATE())に11日を追加する方法を、テーブル作成からクエリ実行まで具体的な例を交えて解説します。サンプルテーブルの作成まず、デモ用のテーブルを作成しましょう。mysql> create table DemoTable1994 ( ArrivalDate date ); Query OK, 0 rows affected (5.33 sec)テストデータの挿入続いて、INSERTコマンドを使用してテーブルに複数のレコードを挿入します。mysql&g
-
JavaでMySQLテーブルのデータをリスト(ArrayList)として取得する方法
JavaでMySQLテーブルからデータを取得してリスト形式に格納したい場合、ArrayListの概念を活用するのが効果的です。特に、ArrayList<ArrayList<データ型>>のように入れ子構造のArrayListを使うことで、テーブルの各行を内側のリスト、テーブル全体を外側のリストとして管理できます。基本的な構文ArrayList<ArrayList<yourDataType>> anyVariableName = new ArrayList<ArrayList<yourDataType>>();サンプルテーブル