Database.Guide

MySQL では、DATE_SUB() 関数を使用して日付から指定した時間を減算することができます。 例えば、指定された日付から7日間を引くために使用することができます。 日、週、月、四半期、年などの単位を指定することができます。 また、秒、マイクロ秒などの時間値を引くこともできます。

この関数は、日付に足すのではなく、日付から引くという点を除き、DATE_ADD() に似ています。

構文

構文は次のようになります。

SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;

Result:

+------------+| Result |+------------+| 2021-05-02 |+------------+

この例は、最初の引数で与えられた日付から5日を引きます。

Example 2 – Other Date Units

日、週、月、年などの単位で指定することができます。 以下に例を示します。

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';

Result:

+------------+------------+------------+-------------+------------+| 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 |+------------+------------+------------+-------------+------------+

Example 3 – Time Units

日付/時刻値から時間単位を差し引くこともできます。 以下はその例です。

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;

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:

+---------------------+| Result |+---------------------+| 2021-05-07 08:30:00 |+---------------------+

Expected Values

次の表は、有効な単位値とその期待される形式を示したものです。

‘h:m:s’

日’分’

unit Value Expected expr Format
MICROSECOND MICROSECONDS
quarter quarter
year years
second_microsecond ‘seconds.microseconds’
minute_microsecond ‘minutes:seconds.マイクロ秒’
分_秒 分:秒’
時_マイクロ秒 時:分:秒’。マイクロ秒’
hour_second ‘hours:minutes:seconds’
hour_minute ‘hours:minutes’
day_microsecond ‘days hours:minutes:seconds.S’ hour_second’ h:m:second’ hour_second’
day_second ‘days hours:minutes:seconds’
day_minute ‘days hours.SECOND’ day_minute’ ‘days hours:分’
day_hour 日時’
year_month 年-‘秒’
year_hour 日時’

また、SUBDATE()関数を使って同じことができます(同じ構文を使用する場合はDATE_SUB()関数と同義語になります)。

さらに、SUBDATE()の構文には第2形式があり、これは日付からある日数を引く省略記法です。 詳細については、「MySQL における SUBDATE() の例」

を参照してください。

コメントを残す

メールアドレスが公開されることはありません。