Mysql
 sql >> Base de données >  >> RDS >> Mysql

EXTRAIRE() Exemples – MySQL

Dans MySQL, vous pouvez utiliser le EXTRACT() fonction pour extraire des parties d'une date. Par exemple, vous pouvez extraire la partie année, la partie mois ou la partie jour, etc. Vous pouvez également extraire des parties du composant horaire, telles que les minutes, les secondes, les microsecondes, etc.

Cet article contient des exemples à démontrer.

Syntaxe

La syntaxe ressemble à ceci :

EXTRACTION(unité DE date)

unit est la partie date que vous souhaitez extraire, et date est la valeur de date à partir de laquelle extraire cette partie.

Consultez le tableau au bas de cet article pour obtenir une liste des spécificateurs d'unités valides.

Exemple 1

Voici un exemple pour illustrer l'utilisation de base de la fonction.

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

Résultat :

+--------+| Résultat |+--------+| 2019 |+--------+

Exemple 2 - Plus de parties de date

Ici, j'extrait les différentes parties de date d'une date.

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

Résultat :

+------+-------+------+| jour | Mois | Année |+------+-------+------+| 3 | 10 | 2019 |+------+-------+------+

Exemple 3 - Extraction de parties de temps

Ici, j'extrait différentes parties du temps à partir d'une date.

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

Résultat :

+-------+---------+---------+--------------+| Heures | procès-verbal | Secondes | Microsecondes |+-------+---------+---------+--------------+| 12 | 35 | 5 | 123456 |+-------+---------+---------+-------+

Exemple 4 - Combinaison de spécificateurs d'unités

Vous pouvez également combiner des spécificateurs d'unité, comme ceci :

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

Résultat :

+--------------+| Résultat |+--------------+| 123505123456 |+----------------------+

Cet exemple renvoie tout, de la partie heures à la partie microsecondes.

Un exemple de base de données

Voici un exemple d'extraction de l'année et du mois d'une colonne dans une base de données :

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

Résultat :

+---------------------+------------+| Date/Heure | Année/Mois |+---------------------+------------+| 2005-05-25 11:30:37 | 200505 |+---------------------+------------+

Date/heure actuelle

Ici, j'extrait la partie mois d'une date générée avec le CURDATE() fonction.

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

Résultat :

+------------+-------------------------------+| CURDATE() | EXTRAIT(MOIS DE CURDATE()) |+------------+--------------------------- ----+| 2018-06-26 | 6 |+------------+-------------------------------+ 

Dans cet exemple, j'extrait la partie heure de la date et de l'heure actuelles (qui est générée avec le NOW() fonction).

SÉLECTIONNER MAINTENANT(), EXTRAIRE(HEURE À PARTIR DE MAINTENANT());

Résultat :

+---------------------+------------------------ --+| MAINTENANT() | EXTRAIT(HEURE A PARTIR DE MAINTENANT()) |+---------------------+------------------ --------+| 2018-06-26 09:01:46 | 9 |+---------------------+------------------------- -+

Valeurs attendues

Le tableau suivant indique les valeurs unitaires valides et leur format attendu.

unit Valeur expr attendu Format
MICROSECOND MICROSECONDES
DEUXIÈME SECONDES
MINUTE MINUTES
HEURE HEURES
JOUR JOURS
SEMAINE SEMAINES
MOIS MOIS
TRIMESTRE QUARTS
ANNÉE ANNÉES
SECOND_MICROSECOND ‘SECONDS.MICROSECONDES’
MINUTE_MICROSECOND ‘MINUTES :SECONDES.MICROSECONDES’
MINUTE_SECOND ‘MINUTES :SECONDES’
HOUR_MICROSECOND ‘HEURES:MINUTES:SECONDES.MICROSECONDES’
HOUR_SECOND ‘HEURES:MINUTES:SECONDES’
HOUR_MINUTE ‘HEURES :MINUTES’
DAY_MICROSECOND ‘JOURS HEURES:MINUTES:SECONDES.MICROSECONDES’
DAY_SECOND ‘JOURS HEURES:MINUTES:SECONDES’
DAY_MINUTE 'JOURS HEURES :MINUTES'
DAY_HOUR 'JOURS HEURES'
YEAR_MONTH ‘ANNÉES-MOIS’