sql >> Database teknologi >  >> RDS >> Mysql

SUBDATE() Eksempler – MySQL

I MySQL kan du bruge SUBDATE() funktion til at trække en bestemt mængde tid fra en dato. For eksempel kan du bruge det til at trække 10 dage fra en given dato. Du kan angive, om dage, uger, måneder, kvartaler, år osv. skal trækkes fra. Du kan også trække en tidsværdi fra, såsom sekunder, mikrosekunder osv.

Når du bruger den første syntaks nedenfor, er SUBDATE() funktion er et synonym for DATE_SUB() funktion (ligner ADDDATE() er et synonym for DATE_ADD() når du bruger den samme syntaks).

Syntaks

Du kan bruge denne funktion på følgende to måder:

SUBDATE(date,INTERVAL expr unit)

Eller

SUBDATE(expr,days)

Eksempel 1 – Den første syntaks

Her er et eksempel på brug af den første form af syntaksen.

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

Resultat:

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

Dette eksempel trækker 2 dage fra datoen fra det første argument.

Eksempel 2 – Den anden syntaks

Dette eksempel kunne omskrives som følgende:

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

Resultat:

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

Dette bruger den anden form af syntaksen. Det andet argument er et heltal, der repræsenterer, hvor mange dage der skal trækkes fra datoen fra det første argument.

Som nævnt SUBDATE() er et synonym for DATE_SUB() , men kun når den første syntaks bliver brugt. Den anden syntaks er kun tilgængelig i SUBDATE() .

Eksempel 3 – Andre datoenheder

En fordel ved den første form for syntaksen er, at du kan angive, om dage, uger, måneder, år osv. skal trækkes fra. Her er nogle eksempler.

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

Eksempel 4 – Tidsenheder

Du kan også bruge SUBDATE() at trække tidsenheder fra en dato/tidsværdi. Her er et eksempel.

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

Resultat:

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

Forventede værdier

Følgende tabel viser de gyldige enhedsværdier og deres forventede format.

unit Værdi Forventet expr Formater
MICROSECOND MIKROSEKUNDER
ANDEN SEKUNDER
MINUT MINUTTER
TIME TIMER
DAG DAGE
UGE UGER
MÅNED MÅNEDER
KVART KVARTERE
ÅR ÅR
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTTER:SECONDS.MICROSECONDS'
MINUTE_SECOND 'MINUTTER:SECONDS'
HOUR_MICROSECOND 'TIMER:MINUTTER:SECONDS.MICROSECONDS'
HOUR_SECOND 'TIMER:MINUTTER:SECONDS'
HOUR_MINUTE 'TIMER:MINUTTER'
DAY_MICROSECOND 'DAGE TIMER:MINUTTER:SECONDS.MICROSECONDS'
DAY_SECOND 'DAGE TIMER:MINUTTER:SECONDS'
DAY_MINUTE 'DAGE TIMER:MINUTTER'
DAY_HOUR 'DAGE TIMER'
YEAR_MONTH 'ÅR-MÅNEDER'

  1. Hvordan omdøber man den uploadede fil, før man gemmer den i en mappe?

  2. Sådan rettes "datediff-funktionen resulterede i et overløb"-fejl i SQL Server

  3. Sådan udføres funktion i Oracle med parametre

  4. Vigtigheden af ​​varchar-længde i MySQL-tabel