Mysql
 sql >> Datenbank >  >> RDS >> Mysql

EXTRACT() Beispiele – MySQL

In MySQL können Sie den EXTRACT() verwenden Funktion zum Extrahieren von Teilen aus einem Datum. Beispielsweise können Sie den Jahresteil, den Monatsteil oder den Tagesteil usw. extrahieren. Sie können auch Teile aus der Zeitkomponente extrahieren, wie Minuten, Sekunden, Mikrosekunden usw.

Dieser Artikel enthält Beispiele zur Veranschaulichung.

Syntax

Die Syntax lautet wie folgt:

EXTRACT(Einheit AUS Datum)

Wobei unit ist der Datumsteil, den Sie extrahieren möchten, und date ist der Datumswert, aus dem dieser Teil extrahiert werden soll.

In der Tabelle am Ende dieses Artikels finden Sie eine Liste gültiger Einheitenbezeichner.

Beispiel 1

Hier ist ein Beispiel, um die grundlegende Verwendung der Funktion zu demonstrieren.

SELECT EXTRACT(YEAR OF '2019-01-01') AS 'Ergebnis';

Ergebnis:

+--------+| Ergebnis |+--------+| 2019 |+--------+

Beispiel 2 – Mehr Datumsteile

Hier extrahiere ich die verschiedenen Datumsteile aus einem 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 ';

Ergebnis:

+------+-------+------+| Tag | Monat | Jahr |+------+-------+------+| 3 | 10 | 2019 |+------+-------+------+

Beispiel 3 – Extrahieren von Zeitabschnitten

Hier extrahiere ich verschiedene Zeitteile aus einem 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 @ Datum) AS 'Sekunden', EXTRACT(MICROSECOND FROM @date) AS 'Mikrosekunden';

Ergebnis:

+-------+---------+---------+--------------+| Stunden | Minuten | Sekunden | Mikrosekunden |+-------+---------+---------+--------------+| 12 | 35 | 5 | 123456 |+-------+---------+---------+--------------+

Beispiel 4 – Kombinieren von Einheitenspezifizierern

Sie können Einheitenbezeichner auch wie folgt kombinieren:

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

Ergebnis:

+--------------+| Ergebnis |+--------------+| 123505123456 |+--------------+

Dieses Beispiel gibt alles vom Stundenteil bis zum Mikrosekundenteil zurück.

Ein Datenbankbeispiel

Hier ist ein Beispiel für das Extrahieren von Jahr und Monat aus einer Spalte in einer Datenbank:

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

Ergebnis:

+---------------------+------------+| Datum/Uhrzeit | Jahr/Monat |+--------------------+---------------------+| 2005-05-25 11:30:37 | 200505 |+---------------------+------------+

Aktuelles Datum/aktuelle Uhrzeit

Hier extrahiere ich den Monatsteil aus einem mit CURDATE() generierten Datum Funktion.

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

Ergebnis:

+------------+------------------------------+| CURDATE() | AUSZUG(MONAT AUS KURDATUM()) |+------------+--------------------------- ----+| 2018-06-26 | 6 |+------------+------------------------------+ 

In diesem Beispiel extrahiere ich den Stundenteil aus dem aktuellen Datum und der Uhrzeit (die mit dem NOW() generiert wird). Funktion).

JETZT AUSWÄHLEN(), EXTRACT(STUNDE VON JETZT());

Ergebnis:

+---------------------+-------------------------------- --+| JETZT() | AUSZUG(STUNDE VON JETZT()) |+---------------------+------------------ --------+| 2018-06-26 09:01:46 | 9 |+---------------------+-------------------- -+

Erwartete Werte

Die folgende Tabelle zeigt die gültigen Einheitenwerte und ihr erwartetes Format.

unit Wert Erwarteter expr Formatieren
Mikrosekunde MIKROSEKUNDEN
ZWEITE SEKUNDEN
MINUTE MINUTEN
STUNDE STUNDEN
TAG TAGE
WOCHE WOCHEN
MONAT MONATE
QUARTAL VIERTEL
JAHR JAHRE
SECOND_MICROSECOND ‘SEKUNDEN.MIKROSEKUNDEN’
MINUTE_MICROSECOND ‘MINUTEN:SEKUNDEN.MIKROSEKUNDEN’
MINUTE_SECOND ‘MINUTEN:SEKUNDEN’
HOUR_MICROSECOND ‘STUNDEN:MINUTEN:SEKUNDEN.MIKROSEKUNDEN’
HOUR_SECOND ‘STUNDEN:MINUTEN:SEKUNDEN’
HOUR_MINUTE ‘STUNDEN:MINUTEN’
DAY_MICROSECOND ‘TAGE STUNDEN:MINUTEN:SEKUNDEN.MIKROSEKUNDEN’
DAY_SECOND ‘TAGE STUNDEN:MINUTEN:SEKUNDEN’
DAY_MINUTE ‘TAGE STUNDEN:MINUTEN’
DAY_HOUR „TAGE STUNDEN“
JAHR_MONAT „JAHRE-MONATE“