sql >> Databáze >  >> RDS >> Mysql

DATE_SUB() Příklady – MySQL

V MySQL můžete použít DATE_SUB() funkce pro odečtení určitého času od data. Můžete jej použít například k odečtení 7 dnů od daného data. Můžete určit, zda se mají odečítat dny, týdny, měsíce, čtvrtletí, roky atd. Můžete také odečíst časovou hodnotu, jako jsou sekundy, mikrosekundy atd.

Tato funkce je podobná DATE_ADD() , kromě toho, že od data odečítá, místo aby k němu přidával.

Syntaxe

Syntaxe vypadá takto:

DATE_SUB(date,INTERVAL expr unit)

Příklad 1 – Základní použití

Zde je příklad použití.

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

Výsledek:

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

Tento příklad odečte 5 dní od data poskytnutého prvním argumentem.

Příklad 2 – Jiné jednotky data

Jednotky můžete zadat ve dnech, týdnech, měsících, letech atd. Zde je několik příkladů.

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

Výsledek:

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

Příklad 3 – Časové jednotky

Od hodnoty data/času můžete také odečíst časové jednotky. Zde je příklad.

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

Výsledek:

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

A můžete zadat více jednotek současně. Můžete například zadat hodiny a minuty. Takhle.

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

Výsledek:

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

Očekávané hodnoty

Následující tabulka ukazuje platné hodnoty jednotek a jejich očekávaný formát.

unit Hodnota Očekáváno expr Formát
MIKROSECOND MIKROSEKUNDY
DRUHÁ SEKUND
MINUTE MINUTY
HODINA HODINY
DEN DNY
WEEK WEEKS
MĚSÍC MĚSÍCE
ČTVRTLETÍ ČTVRTLETÍ
ROK ROKY
SECOND_MICROSECOND „SECONDS.MICROSECONDS“
MINUTE_MICROSECOND „MINUTY:SECONDS.MICROSECONDS“
MINUTE_SECOND „MINUTY:SECONDS“
HOUR_MICROSECOND 'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND „HOURS:MINUTES:SECONDS“
HOUR_MINUTE „HOURS:MINUTES“
DAY_MICROSECOND 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND „DAYS HOURS:MINUTES:SECONDS“
DAY_MINUTE „DAYS HOURS:MINUTES“
DAY_HOUR „DAYS HOURS“
YEAR_MONTH „ROKY-MĚSÍCE“

Můžete také použít SUBDATE() funkce, která dělá totéž (je to synonymum pro DATE_SUB() funkce při použití stejné syntaxe).

Navíc syntaxe SUBDATE() má druhý tvar, což je zkrácená metoda odečítání určitého počtu dní od data. Další informace naleznete v části Příklady SUBDATE() v MySQL.


  1. Možnosti ladění výkonu Azure SQL Database

  2. Použití Pythonu a MySQL v procesu ETL:SQLAlchemy

  3. Rozdělte data sloupců oddělených čárkami do dalších sloupců

  4. psql:server neočekávaně ukončil připojení