Database.Guide

I MySQL kan du använda funktionen DATE_SUB() för att subtrahera en viss tid från ett datum. Du kan till exempel använda den för att subtrahera 7 dagar från ett givet datum. Du kan ange om du vill subtrahera dagar, veckor, månader, kvartal, år osv. Du kan också subtrahera ett tidsvärde, t.ex. sekunder, mikrosekunder etc.

Funktionen liknar DATE_ADD(), förutom att den subtraherar från ett datum i stället för att addera till det.

Syntax

Syntaxen ser ut så här:

DATE_SUB(date,INTERVAL expr unit)

Exempel 1 – Grundläggande användning

Här är ett exempel på användning.

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

Resultat:

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

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

Exempel 2 – Andra datumenheter

Du kan ange enheterna i dagar, veckor, månader, år osv. Här är några exempel.

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

Resultat:

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

Exempel 3 – Tidsenheter

Du kan också subtrahera tidsenheter från ett datum/tidsvärde. Här är ett exempel.

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

Resultat:

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

Och du kan ange flera enheter samtidigt. Du kan till exempel ange timmar och minuter. Så här:

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;

Resultat:

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

Vänliga värden

I följande tabell visas de giltiga enhetsvärdena och deras förväntade format.

unit Värde förväntat exprFormat
Mikrosekund Mikrosekund
SEKUND SEKUNDER
MINUT MINUTER
TIMME TIMMAR
DAG DAGAR
VECKA VECKOR
MÅNAD MÅNADER
KVARTAL KVARTAL
ÅR ÅR
SEKUND_MIKROSEKUND ’SEKUNDER.MIKROSEKUNDER”
MINUT_MIKROSEKUND ’MINUTER:SEKUNDER.MIKROSEKUNDER’
MINUT_SEKUND ’MINUTER:SEKUNDER’
TIMME_MIKROSEKUND ’TIMMAR:MINUTER:SEKUNDER.MIKROSEKUNDER’
TIMME_SEKUND ’TIMMAR:MINUTER:SEKUNDER’
TIMME_MINUT ’TIMMAR:MINUTER’
DAG_MIKROSEKUND ’DAGAR TIMMAR:MINUTER:SEKUNDER.MIKROSEKUNDER’
DAY_SECOND ’DAGAR TIMMAR:MINUTER:SEKUNDER’
DAY_MINUTE ’DAGAR TIMMAR:MINUTER’
DAG_TIMME ’DAGAR TIMMAR’
ÅR_MÅNAD ’ÅR-MONTHS’

Du kan också använda funktionen SUBDATE() för att göra samma sak (det är en synonym för funktionen DATE_SUB() när samma syntax används).

Den syntaxen för SUBDATE() har dessutom en andra form, som är en kortfattad metod för att subtrahera ett visst antal dagar från ett datum. För mer information, se SUBDATE() Examples in MySQL.

Lämna ett svar

Din e-postadress kommer inte publiceras.