Database.Guide

MySQL:ssä voit käyttää DATE_SUB()-funktiota, jolla voit vähentää päivämääristä tietyn ajanjakson. Voit esimerkiksi käyttää sitä vähentämään 7 päivää tietystä päivämäärästä. Voit määrittää, vähennetäänkö päiviä, viikkoja, kuukausia, neljännesvuosia, vuosia jne. Voit myös vähentää aika-arvon, kuten sekunnit, mikrosekunnit jne.

Tämä funktio on samanlainen kuin DATE_ADD(), paitsi että se vähentää päivämäärästä eikä lisää siihen.

Syntaksi

Syntaksi menee näin:

DATE_SUB(date,INTERVAL expr unit)

Esimerkki 1 – Peruskäyttö

Tässä on esimerkki käytöstä.

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

Tulos:

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

Tässä esimerkissä ensimmäisellä argumentilla annetusta päivämäärästä vähennetään 5 päivää.

Esimerkki 2 – Muut päivämääräyksiköt

Voit määrittää yksiköt päivinä, viikkoina, kuukausina, vuosina jne. Tässä muutamia esimerkkejä.

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

Tulos:

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

Esimerkki 3 – Aikayksiköt

Voit myös vähentää päivämäärä-/aika-arvosta aikayksiköt. Tässä on esimerkki.

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

Tulos:

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

Ja voit määrittää useita yksiköitä samanaikaisesti. Voit esimerkiksi määrittää tunnit ja minuutit. Näin:

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

Tulos:

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

Odotetut arvot

Seuraavassa taulukossa esitetään kelvolliset yksikköarvot ja niiden odotettu muoto.

.

unit Arvo Odotettu expr Formaatti
MIKROSEKUNTI MIKROSEKUNTI
SEKUNTI SEKUNTIA
MINUUTTI MINUUTTEJA
TUNTI TUNTIA TUNTEJA
PÄIVÄ PÄIVÄT
VIIKKO VIIKOT
KUUKAUSI KUUKAUDET KUUKAUDET
NELJÄNNES NELJÄNNEKSET
VUOSI VUODET
SEKUNTI_MIKROSEKUNTI ’SEKUNNIT.MIKROSEKUNNIT’
MINUUTTI_MIKROSEKUNTI ’MINUUTIT:SEKUNNIT.MIKROSEKUNNIT’
MINUUTTI_MIKROSEKUNTI ’MINUUTIT:SEKUNNIT’
TUNTI_MIKROSEKUNTI ’TUNNIT:MINUUTIT:SEKUNNIT.MIKROSEKUNNIT’
TUNTI_MINUUTTI ’TUNNIT:MINUUTIT:SEKUNNIT’
TUNTI_MINUUTTI ’TUNNIT:MINUUTIT’
PÄIVÄ_MIKROSEKUNTI ’PÄIVÄT TUNNIT:MINUUTIT:SEKUNNIT.MIKROSEKUNNIT’
PÄIVÄ_SEKUNTI ’PÄIVÄT TUNNIT:MINUUTIT:SEKUNNIT’
PÄIVÄ_MINUUTTI ’PÄIVÄT TUNNIT:MINUUTIT’
PÄIVÄ_TUNTI ’PÄIVÄT TUNNIT’
VUOSI_KUUKAUSI ’VUODET-MONTHS’

Voit myös käyttää SUBDATE()-funktiota saman asian tekemiseen (se on synonyymi DATE_SUB()-funktiolle, kun käytetään samaa syntaksia).

Lisäksi SUBDATE()-syntaksilla on toinen muoto, joka on lyhennetty tapa vähentää päivämäärästä tietty määrä päiviä. Lisätietoja on kohdassa SUBDATE()-esimerkkejä MySQL:ssä.

Vastaa

Sähköpostiosoitettasi ei julkaista.