sql >> データベース >  >> RDS >> Mysql

SUBDATE()の例– MySQL

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

    以下にリストされている最初の構文を使用する場合、SUBDATE() 関数はDATE_SUB()の同義語です 関数(ADDDATE()と同様 DATE_ADD()の同義語です 同じ構文を使用する場合)。

    構文

    この関数は、次の2つの方法で使用できます。

    SUBDATE(date,INTERVAL expr unit)

    または

    SUBDATE(expr,days)

    例1-最初の構文

    構文の最初の形式を使用する例を次に示します。

    SELECT SUBDATE('2018-05-10', INTERVAL 2 DAY) AS Result;

    結果:

    +------------+
    | Result     |
    +------------+
    | 2018-05-08 |
    +------------+

    この例では、最初の引数で指定された日付から2日を減算します。

    例2–2番目の構文

    この例は、次のように書き直すことができます。

    SELECT SUBDATE('2018-05-10', 2) AS Result;

    結果:

    +------------+
    | Result     |
    +------------+
    | 2018-05-08 |
    +------------+

    これは、構文の2番目の形式を使用します。 2番目の引数は、最初の引数で指定された日付から何日を引く必要があるかを表す整数です。

    前述のように、SUBDATE() DATE_SUB()の同義語です 、ただし、最初の構文が使用されている場合のみ。 2番目の構文は、SUBDATE()でのみ使用できます。 。

    例3–その他の日付単位

    構文の最初の形式の利点の1つは、日、週、月、年などを減算するかどうかを指定できることです。ここにいくつかの例があります。

    SELECT 
        '2018-05-10' AS 'Start Date',
        SUBDATE('2018-05-10', INTERVAL 2 WEEK) AS '-2 Weeks',
        SUBDATE('2018-05-10', INTERVAL 2 MONTH) AS '-2 Months',
        SUBDATE('2018-05-10', INTERVAL 2 QUARTER) AS '-2 Quarters',
        SUBDATE('2018-05-10', INTERVAL 2 YEAR) AS '-2 Years';

    結果:

    +------------+------------+------------+-------------+------------+
    | Start Date | -2 Weeks   | -2 Months  | -2 Quarters | -2 Years   |
    +------------+------------+------------+-------------+------------+
    | 2018-05-10 | 2018-04-26 | 2018-03-10 | 2017-11-10  | 2016-05-10 |
    +------------+------------+------------+-------------+------------+

    例4–時間単位

    SUBDATE()を使用することもできます 日付/時刻の値から時間単位を減算します。これが例です。

    SELECT SUBDATE('2018-05-10 01:00:00', INTERVAL 2 HOUR) AS Result;
    

    結果:

    +---------------------+
    | Result              |
    +---------------------+
    | 2018-05-09 23:00: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」

    1. クエリチューニングによるSQLデッドロックの回避:BrentOzarからのアドバイス

    2. 文字列の制約をチェックして、数字のみを含めます。 (Oracle SQL)

    3. SQLおよびPL/SQLでの文字列の反転例

    4. PostgreSQLを使用したマルチデータセンターのセットアップ