sql >> Databasteknik >  >> RDS >> Mysql

EXTRACT() Exempel – MySQL

I MySQL kan du använda EXTRACT() funktion för att extrahera delar från ett datum. Du kan till exempel extrahera årsdelen, månadsdelen eller dagdelen etc. Du kan också extrahera delar från tidskomponenten, såsom minuter, sekunder, mikrosekunder osv.

Den här artikeln innehåller exempel att visa.

Syntax

Syntaxen ser ut så här:

EXTRACT(enhet FRÅN datum)

Där unit är datumdelen som du vill extrahera, och date är datumvärdet att extrahera den delen från.

Se tabellen längst ned i den här artikeln för en lista över giltiga enhetsspecifikationer.

Exempel 1

Här är ett exempel för att visa funktionens grundläggande användning.

VÄLJ EXTRAKT(ÅR FRÅN '2019-01-01') SOM 'Resultat';

Resultat:

+--------+| Resultat |+--------+| 2019 |+--------+

Exempel 2 – Fler datumdelar

Här extraherar jag de olika datumdelarna från ett datum.

SET @date ='2019-10-03';VÄLJ EXTRACT(DAY FROM @date) AS 'Day', EXTRACT(MONTH FROM @date) AS 'Month', EXTRACT(YEAR FROM @date) AS 'Year ';

Resultat:

+------+-------+------+| Dag | Månad | År |+------+-------+------+| 3 | 10 | 2019 |+------+-------+------+

Exempel 3 – Extrahera tidsdelar

Här extraherar jag olika tidsdelar från ett datum.

SET @date ='2019-10-03 12:35:05.123456';SELECT EXTRACT(HOUR FROM @date) AS 'Hours', EXTRACT(MINUTE FROM @date) AS 'Minutes', EXTRACT(SECOND FROM @@ date) AS 'Seconds', EXTRACT(MICROSECOND FROM @date) AS 'Microseconds';

Resultat:

+-------+--------+---------+--------------+| Timmar | Protokoll | Sekunder | Mikrosekunder |+-------+---------+--------+--------------+| 12 | 35 | 5 | 123456 |+-------+---------+---------+-------------+

Exempel 4 – Kombinera enhetsspecifikationer

Du kan också kombinera enhetsspecifikationer, så här:

SET @date ='2019-10-03 12:35:05.123456';SELECT EXTRACT(HOUR_MICROSECOND FROM @date) SOM 'Result';

Resultat:

+--------------+| Resultat |+--------------+| 123505123456 |+--------------+

Detta exempel returnerar allt från timmar-delen till mikrosekundersdelen.

Ett databasexempel

Här är ett exempel på att extrahera år och månad från en kolumn i en databas:

ANVÄND sakila;SELECT payment_date AS 'Date/Time', EXTRACT(YEAR_MONTH FROM payment_date) AS 'Year/Month'FROM paymentWHERE payment_id =1;

Resultat:

+----------------------------+--------+| Datum/Tid | År/månad |+----------------------+------------+| 2005-05-25 11:30:37 | 200505 |+----------------------+------------+

Aktuellt datum/tid

Här extraherar jag månadsdelen från ett datum som genererats med CURDATE() funktion.

SELECT CURDATE(), EXTRACT(MONTH FROM CURDATE());

Resultat:

+------------+-------------------------------------+| CURDATE() | EXTRACTER(MONTH FROM CURDATE()) |+------+-------------------------------- ----+| 2018-06-26 | 6 |+------------+--------------------------------------+ 

I det här exemplet extraherar jag timdelen från det aktuella datumet och tiden (som genereras med NOW() funktion).

VÄLJ NU(), EXTRACERA(TIMMAR FRÅN NU());

Resultat:

+---------------------+------------------------ --+| NU() | EXTRACERA(HOUR FROM NOW()) |+--------------------------+------------------------ --------+| 2018-06-26 09:01:46 | 9 |+---------------------+------------------------ -+

Förväntade värden

Följande tabell visar giltiga enhetsvärden och deras förväntade format.

unit Värde Förväntat expr Format
MICROSECOND MIKROSECONDS
ANDRA sekunder
MINUT MINUTTER
TIMMAR TIMMAR
DAG DAGAR
VECKAN VECKOR
MÅNAD MÅNADER
KVARTAL KVARTER
ÅR ÅR
SECOND_MICROSECOND ‘SECONDS.MICROSECONDS’
MINUTE_MICROSECOND ‘MINUTES:SECONDS.MICROSECONDS’
MINUTE_SECOND 'MINUTTER:SECONDS'
HOUR_MICROSECOND 'TIMMAR:MINUTTER:SECONDS.MICROSECONDS'
HOUR_SECOND 'TIMMAR:MINUTTER:SEKUNDER'
HOUR_MINUTE 'TIMMAR:MINUTTER'
DAY_MICROSECOND ‘DAGAR TIMMER:MINUTTER:SECONDS.MICROSECONDS’
DAY_SECOND ‘DAGAR TIMMAR:MINUTTER:SECONDS’
DAY_MINUTE ‘DAGAR TIMMAR:MINUTTER’
DAY_HOUR 'DAGAR TIMMER'
YEAR_MONTH 'ÅR-MÅNADER'

  1. DEGREES() Exempel i SQL Server

  2. Hur man förhindrar SQL-injektionsattacker med Secure

  3. Hur man tar bort en databas i cPanel

  4. Infogar rader i en tabell med endast en IDENTITY-kolumn