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

Příklady EXTRACT() – MySQL

V MySQL můžete použít EXTRACT() funkce pro extrahování částí z data. Můžete například extrahovat část roku, část měsíce nebo část dne atd. Můžete také extrahovat části z časové složky, jako jsou minuty, sekundy, mikrosekundy atd.

Tento článek obsahuje příklady k demonstraci.

Syntaxe

Syntaxe vypadá takto:

EXTRACT(jednotka DATUM)

Kde unit je část data, kterou chcete extrahovat, a date je hodnota data, ze které se má tato část extrahovat.

Seznam platných specifikátorů jednotek naleznete v tabulce ve spodní části tohoto článku.

Příklad 1

Zde je příklad, který demonstruje základní použití funkce.

VYBRAT EXTRAKT (ROK OD '2019-01-01') JAKO 'Výsledek';

Výsledek:

+---------+| Výsledek |+--------+| 2019 |+--------+

Příklad 2 – Více částí data

Zde extrahuji různé části data z data.

SET @date ='2019-10-03';VYBERTE EXTRAKT (DEN OD @date) JAKO 'Den', EXTRAKT (MĚSÍC OD @date) JAKO 'Měsíc', EXTRAKT (YEAR OD @date) JAKO 'Rok ';

Výsledek:

+------+-------+------+| den | Měsíc | Rok |+------+-------+------+| 3 | 10 | 2019 |+------+-------+------+

Příklad 3 – Extrakce časových částí

Zde extrahuji různé časové části z data.

SET @date ='2019-10-03 12:35:05.123456';VYBERTE EXTRAKT (HODINU OD @datum) JAKO 'hodiny', EXTRAKT (MINUTE OD @date) JAKO 'minuty', EXTRAKT (SECOND OD @ datum) JAKO 'Sekundy', EXTRAKT (MIKROSECOND Z @date) JAKO 'Mikrosekundy';

Výsledek:

+-------+---------+---------+--------------+| Hodiny | minuty | Vteřiny | Mikrosekundy |+-------+---------+---------+--------------+| 12 | 35 | 5 | 123456 |+-------+---------+---------+--------------+

Příklad 4 – Kombinace specifikátorů jednotek

Specifikátory jednotek můžete také kombinovat takto:

SET @date ='2019-10-03 12:35:05.123456';VYBRAT EXTRACT(HODINA_MICROSECOND OD @date) JAKO 'Výsledek';

Výsledek:

+---------------+| Výsledek |+---------------+| 123505123456 |+--------------+

Tento příklad vrátí vše od části hodin po část mikrosekund.

Příklad databáze

Zde je příklad extrahování roku a měsíce ze sloupce v databázi:

POUŽÍVEJTE sakila;VYBERTE datum_platby JAKO 'Datum/Čas', EXTRACT (YEAR_MONTH OD payment_date) JAKO 'Rok/Měsíc'OD platbyWHERE payment_id =1;

Výsledek:

+---------------------+------------+| Datum/čas | Rok/měsíc |+---------------------+------------+| 2005-05-25 11:30:37 | 200505 |+---------------------+------------+

Aktuální datum/čas

Zde extrahuji část měsíce z data vygenerovaného pomocí CURDATE() funkce.

SELECT CURDATE(), EXTRACT(MĚSÍC OD CURDATE());

Výsledek:

+------------+-------------------------------+| AKTUÁLNÍ() | EXTRAKT (MĚSÍC OD AKTUÁLNÍHO()) |+------------+--------------------------- ----+| 2018-06-26 | 6 |+------------+-------------------------------+ 

V tomto příkladu extrahuji hodinovou část z aktuálního data a času (který je generován pomocí NOW() funkce).

VYBRAT HNED(), EXTRAKTOVAT(HODINA OD TEĎ());

Výsledek:

+---------------------+------------------------ --+| NYNÍ() | EXTRAKT (HODINA OD TEĎ()) |+---------------------+------------------ --------+| 2018-06-26 09:01:46 | 9 |+---------------------+------------------------- -+

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“

  1. Jak je implementován časový limit dotazu JDBC společnosti Oracle?

  2. Jak nastavit proměnnou z SQL dotazu?

  3. Nastavení fyzického pohotovostního režimu Active Data Guard v architektuře RAC One Node – část 2

  4. Vícepříkazová funkce s hodnotou tabulky vs. funkce s hodnotou s vloženou tabulkou