MySQLでは、DATE_SUB()
を使用できます 日付から指定された時間を減算する関数。たとえば、これを使用して、特定の日付から7日を引くことができます。日、週、月、四半期、年などを減算するかどうかを指定できます。秒、マイクロ秒などの時間値を減算することもできます。
この関数は、DATE_ADD()
に似ています。 、ただし、日付に加算するのではなく、日付から減算します。
構文
構文は次のようになります:
DATE_SUB(date,INTERVAL expr unit)
例1-基本的な使用法
使用例を次に示します。
SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;
結果:
+------------+ | Result | +------------+ | 2021-05-02 | +------------+
この例では、最初の引数で指定された日付から5日を差し引きます。
例2–その他の日付単位
単位は、日、週、月、年などで指定できます。いくつかの例を示します。
SELECT '2021-05-07' AS 'Start Date', DATE_SUB('2021-05-07', INTERVAL 2 WEEK) AS '-2 Weeks', DATE_SUB('2021-05-07', INTERVAL 2 MONTH) AS '-2 Months', DATE_SUB('2021-05-07', INTERVAL 2 QUARTER) AS '-2 Quarters', DATE_SUB('2021-05-07', INTERVAL 2 YEAR) AS '-2 Years';
結果:
+------------+------------+------------+-------------+------------+ | Start Date | -2 Weeks | -2 Months | -2 Quarters | -2 Years | +------------+------------+------------+-------------+------------+ | 2021-05-07 | 2021-04-23 | 2021-03-07 | 2020-11-07 | 2019-05-07 | +------------+------------+------------+-------------+------------+
例3–時間単位
日付/時刻の値から時間単位を減算することもできます。これが例です。
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;
結果:
+---------------------+ | Result | +---------------------+ | 2021-05-07 05:00:00 | +---------------------+
また、同時に複数のユニットを指定することができます。たとえば、時間と分を指定できます。このように。
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
結果:
+---------------------+ | Result | +---------------------+ | 2021-05-07 08:30:00 | +---------------------+
期待値
次の表に、有効な単位値と予想される形式を示します。
unit 価値 | 予想されるexpr フォーマット |
---|---|
MICROSECOND | マイクロ秒 |
2番目 | 秒 |
MINUTE | 分 |
時間 | 時間 |
日 | 日 |
週 | 週 |
月 | 月 |
QUARTER | 四半期 |
年 | 年 |
SECOND_MICROSECOND | 「SECONDS.MICROSECONDS」 |
MINUTE_MICROSECOND | 「MINUTES:SECONDS.MICROSECONDS」 |
MINUTE_SECOND | 「MINUTES:SECONDS」 |
HOUR_MICROSECOND | 「HOURS:MINUTES:SECONDS.MICROSECONDS」 |
HOUR_SECOND | 「HOURS:MINUTES:SECONDS」 |
HOUR_MINUTE | 「HOURS:MINUTES」 |
DAY_MICROSECOND | 「DAYSHOURS:MINUTES:SECONDS.MICROSECONDS」 |
DAY_SECOND | 「DAYSHOURS:MINUTES:SECONDS」 |
DAY_MINUTE | 「DAYSHOURS:MINUTES」 |
DAY_HOUR | 「DAYSHOURS」 |
YEAR_MONTH | 「YEARS-MONTHS」 |
SUBDATE()
を使用することもできます 同じことを行う関数(DATE_SUB()
の同義語です 同じ構文を使用すると機能します。
さらに、SUBDATE()
の構文 2番目の形式があります。これは、日付から特定の日数を減算する簡略化された方法です。詳細については、MySQLのSUBDATE()の例を参照してください。