sql >> Databasteknik >  >> RDS >> Mysql

SUBDATE() Exempel – MySQL

I MySQL kan du använda SUBDATE() funktion för att subtrahera en angiven tid från ett datum. Du kan till exempel använda den för att subtrahera 10 dagar från ett givet datum. Du kan ange om du vill subtrahera dagar, veckor, månader, kvartal, år, etc. Du kan också subtrahera ett tidsvärde, såsom sekunder, mikrosekunder, etc.

När du använder den första syntaxen nedan, SUBDATE() funktion är en synonym för DATE_SUB() funktion (liknande hur ADDDATE() är en synonym för DATE_ADD() när du använder samma syntax).

Syntax

Du kan använda den här funktionen på följande två sätt:

SUBDATE(date,INTERVAL expr unit)

Eller

SUBDATE(expr,days)

Exempel 1 – Den första syntaxen

Här är ett exempel på hur du använder den första formen av syntaxen.

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

Resultat:

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

Detta exempel subtraherar 2 dagar från det datum som anges av det första argumentet.

Exempel 2 – Den andra syntaxen

Detta exempel kan skrivas om som följande:

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

Resultat:

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

Detta använder den andra formen av syntaxen. Det andra argumentet är ett heltal som representerar hur många dagar som ska subtraheras från det datum som anges av det första argumentet.

Som nämnts, SUBDATE() är en synonym för DATE_SUB() , men bara när den första syntaxen används. Den andra syntaxen är endast tillgänglig i SUBDATE() .

Exempel 3 – Andra datumenheter

En fördel med den första formen av syntaxen är att du kan ange om du vill subtrahera dagar, veckor, månader, år etc. Här är några exempel.

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

Resultat:

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

Exempel 4 – Tidsenheter

Du kan också använda SUBDATE() för att subtrahera tidsenheter från ett datum/tidsvärde. Här är ett exempel.

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

Resultat:

+---------------------+
| Result              |
+---------------------+
| 2018-05-09 23:00:00 |
+---------------------+

Förväntade värden

Följande tabell visar giltiga enhetsvärden och deras förväntade format.

unit Värde Förväntat expr Format
MICROSECOND MIKROSECONDS
ANDRA sekunder
MINUT MINUTTER
TIMMAR TIMMAR
DAG DAGAR
VECKAN VECKOR
MÅNAD MÅNADER
KVARTAL KVARTER
ÅR ÅR
SECOND_MICROSECOND ‘SECONDS.MICROSECONDS’
MINUTE_MICROSECOND ‘MINUTES:SECONDS.MICROSECONDS’
MINUTE_SECOND 'MINUTTER:SECONDS'
HOUR_MICROSECOND 'TIMMAR:MINUTTER:SECONDS.MICROSECONDS'
HOUR_SECOND "TIMMAR:MINUTTER:SEKONDER"
HOUR_MINUTE 'TIMMAR:MINUTTER'
DAY_MICROSECOND ‘DAGAR TIMMER:MINUTTER:SECONDS.MICROSECONDS’
DAY_SECOND ‘DAGAR TIMMAR:MINUTTER:SECONDS’
DAY_MINUTE ‘DAGAR TIMMAR:MINUTTER’
DAY_HOUR 'DAYS TIMMER'
YEAR_MONTH 'ÅR-MÅNADER'

  1. Relationsdatabaser

  2. mysql_insert_id alternativ för postgresql

  3. Android ListView med SQLite

  4. Migrera MySQL till PostgreSQL på AWS RDS, del 3