sql >> Database >  >> RDS >> Mysql

SUBDATE() Voorbeelden – MySQL

In MySQL kunt u de SUBDATE() . gebruiken functie om een ​​bepaalde hoeveelheid tijd van een datum af te trekken. U kunt het bijvoorbeeld gebruiken om 10 dagen van een bepaalde datum af te trekken. U kunt aangeven of u dagen, weken, maanden, kwartalen, jaren, enz. wilt aftrekken. U kunt ook een tijdswaarde aftrekken, zoals seconden, microseconden, enz.

Bij gebruik van de eerste hieronder vermelde syntaxis, wordt de SUBDATE() functie is een synoniem voor de DATE_SUB() functie (vergelijkbaar met hoe ADDDATE() is een synoniem voor DATE_ADD() bij gebruik van dezelfde syntaxis).

Syntaxis

U kunt deze functie op de volgende twee manieren gebruiken:

SUBDATE(date,INTERVAL expr unit)

Of

SUBDATE(expr,days)

Voorbeeld 1 – De eerste syntaxis

Hier is een voorbeeld van het gebruik van de eerste vorm van de syntaxis.

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

Resultaat:

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

Dit voorbeeld trekt 2 dagen af ​​van de datum die door het eerste argument is opgegeven.

Voorbeeld 2 – De tweede syntaxis

Dit voorbeeld kan als volgt worden herschreven:

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

Resultaat:

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

Dit gebruikt de tweede vorm van de syntaxis. Het tweede argument is een geheel getal dat aangeeft hoeveel dagen moeten worden afgetrokken van de datum die door het eerste argument wordt opgegeven.

Zoals vermeld, SUBDATE() is een synoniem voor DATE_SUB() , maar alleen wanneer de eerste syntaxis wordt gebruikt. De tweede syntaxis is alleen beschikbaar in SUBDATE() .

Voorbeeld 3 – Andere datumeenheden

Een voordeel van de eerste vorm van de syntaxis is dat u kunt specificeren of u dagen, weken, maanden, jaren, enz. wilt aftrekken. Hier zijn enkele voorbeelden.

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

Resultaat:

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

Voorbeeld 4 – Tijdseenheden

Je kunt ook SUBDATE() . gebruiken om tijdseenheden af ​​te trekken van een datum/tijd-waarde. Hier is een voorbeeld.

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

Resultaat:

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

Verwachte waarden

De volgende tabel toont de geldige eenheidswaarden en hun verwachte formaat.

unit Waarde Verwachte expr Formaat
MICROSECONDE MICROSECONDEN
TWEEDE SECONDEN
MINUUT MINUTEN
UUR UUR
DAG DAGEN
WEEK WEKEN
MAAND MAANDEN
KWARTAAL KWARTAAL
JAAR JAAR
SECOND_MICROSECOND ‘SECONDEN.MICROSECONDEN’
MINUTE_MICROSECOND ‘MINUTEN:SECONDEN.MICROSECONDEN’
MINUTE_SECOND ‘MINUTEN:SECONDEN’
HOUR_MICROSECOND ‘UUR:MINUTEN:SECONDEN.MICROSECONDEN’
HOUR_SECOND ‘UUR:MINUTEN:SECONDEN’
HOUR_MINUTE ‘UUR:MINUTEN’
DAY_MICROSECOND ‘DAGEN UUR:MINUTEN:SECONDEN.MICROSECONDEN’
DAY_SECOND ‘DAGEN UUR:MINUTEN:SECONDEN’
DAY_MINUTE ‘DAGEN UUR:MINUTEN’
DAY_HOUR ‘DAGEN UUR’
JAAR_MAAND ‘JAAR-MAANDEN’

  1. Hoe SQLite Trim() werkt

  2. Oracle Sequence genereert geen doorlopend nummer

  3. Back-upbronnen voor MySQL en MariaDB Database

  4. kan database niet kopiëren met SQLiteAssetHelper-klasse