sql >> Database >  >> RDS >> Mysql

EXTRACT() Voorbeelden – MySQL

In MySQL kunt u de EXTRACT() . gebruiken functie om delen uit een datum te extraheren. U kunt bijvoorbeeld het jaargedeelte, het maandgedeelte of het daggedeelte extraheren. U kunt ook gedeelten uit de tijdcomponent extraheren, zoals minuten, seconden, microseconden, enz.

Dit artikel bevat voorbeelden om te demonstreren.

Syntaxis

De syntaxis gaat als volgt:

EXTRACT(unit FROM date)

Waar unit is het datumgedeelte dat u wilt extraheren, en date is de datumwaarde om dat deel uit te halen.

Zie de tabel onderaan dit artikel voor een lijst met geldige eenheidspecificaties.

Voorbeeld 1

Hier is een voorbeeld om het basisgebruik van de functie te demonstreren.

SELECT EXTRACT(YEAR FROM '2019-01-01') AS 'Result';

Resultaat:

+--------+
| Result |
+--------+
|   2019 |
+--------+

Voorbeeld 2 – Meer datumdelen

Hier haal ik de verschillende datumdelen uit een datum.

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

Resultaat:

+------+-------+------+
| Day  | Month | Year |
+------+-------+------+
|    3 |    10 | 2019 |
+------+-------+------+

Voorbeeld 3 – Tijddelen extraheren

Hier haal ik verschillende tijdsdelen uit een 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';

Resultaat:

+-------+---------+---------+--------------+
| Hours | Minutes | Seconds | Microseconds |
+-------+---------+---------+--------------+
|    12 |      35 |       5 |       123456 |
+-------+---------+---------+--------------+

Voorbeeld 4 – Eenheidspecificaties combineren

U kunt eenheidspecificaties ook als volgt combineren:

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

Resultaat:

+--------------+
| Result       |
+--------------+
| 123505123456 |
+--------------+

Dit voorbeeld retourneert alles van het urengedeelte tot het microsecondengedeelte.

Een databasevoorbeeld

Hier is een voorbeeld van het extraheren van het jaar en de maand uit een kolom in een database:

USE sakila;
SELECT
  payment_date AS 'Date/Time',
  EXTRACT(YEAR_MONTH FROM payment_date) AS 'Year/Month'
FROM payment
WHERE payment_id = 1;

Resultaat:

+---------------------+------------+
| Date/Time           | Year/Month |
+---------------------+------------+
| 2005-05-25 11:30:37 |     200505 |
+---------------------+------------+

Huidige datum/tijd

Hier extraheer ik het maandgedeelte van een datum die is gegenereerd met de CURDATE() functie.

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

Resultaat:

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

In dit voorbeeld extraheer ik het uurgedeelte van de huidige datum en tijd (die wordt gegenereerd met de NOW() functie).

SELECT 
    NOW(),
    EXTRACT(HOUR FROM NOW());

Resultaat:

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

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. Monitoring &Ops Management van MySQL 8.0 met ClusterControl

  2. Is er een manier om Java op Oracle 11g XE te installeren?

  3. SQL Server VOOR JSON PATH Voorbeelden (T-SQL)

  4. Tabelwijziging in Oracle volgen