Mysql
 sql >> Baza danych >  >> RDS >> Mysql

EXTRACT() Przykłady – MySQL

W MySQL możesz użyć EXTRACT() funkcja wyodrębniania części z daty. Na przykład możesz wyodrębnić część roku, część miesiąca lub część dnia itp. Możesz również wyodrębnić części ze składnika czasu, takie jak minuty, sekundy, mikrosekundy itp.

Ten artykuł zawiera przykłady do zademonstrowania.

Składnia

Składnia wygląda tak:

EXTRACT(unit FROM date)

Gdzie unit to część daty, którą chcesz wyodrębnić, a date to wartość daty, z której należy wyodrębnić tę część.

Zobacz tabelę na dole tego artykułu, aby zobaczyć listę prawidłowych specyfikatorów jednostek.

Przykład 1

Oto przykład demonstrujący podstawowe zastosowanie funkcji.

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

Wynik:

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

Przykład 2 – Więcej części daty

Tutaj wyodrębniam różne części daty z daty.

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

Wynik:

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

Przykład 3 – Wyodrębnianie części czasu

Tutaj wyodrębniam różne części czasu z daty.

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';

Wynik:

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

Przykład 4 – Łączenie specyfikatorów jednostek

Możesz także łączyć specyfikatory jednostek w następujący sposób:

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

Wynik:

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

Ten przykład zwraca wszystko, od części godzinowej do części dotyczącej mikrosekund.

Przykład bazy danych

Oto przykład wyodrębnienia roku i miesiąca z kolumny w bazie danych:

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

Wynik:

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

Aktualna data/godzina

Tutaj wyodrębniam część miesiąca z daty wygenerowanej za pomocą CURDATE() funkcja.

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

Wynik:

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

W tym przykładzie wyodrębniam część godzinową z bieżącej daty i czasu (która jest generowana za pomocą NOW() funkcja).

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

Wynik:

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

Oczekiwane wartości

Poniższa tabela przedstawia prawidłowe wartości jednostek i ich oczekiwany format.

unit Wartość Oczekiwano expr Format
MIKROSEKUNDA MIKROSEKUNDY
DRUGA SEKUND
MINUTA MINUT
GODZINA GODZINY
DZIEŃ DNI
TYDZIEŃ TYGODNIE
MIESIĄC MIESIĄCE
KWARTAŁ KWARTAŁ
ROK LAT
SECOND_MICROSECOND „SEKUND.MIKROSEKUNDY”
MINUTE_MICROSECOND „MINUTY:SEKUND.MIKROSEKUNDY”
MINUTE_SECOND „MINUTY:SEKUNDY”
HOUR_MICROSECOND „GODZINY:MINUTY:SEKUND.MIKROSEKUNDY”
HOUR_SECOND „GODZINY:MINUTY:SEKUNDY”
GODZINA_MINUTA „GODZINY:MINUTY”
DAY_MICROSECOND „DNI GODZINY:MINUTY:SEKUND.MIKROSEKUNDY”
DAY_SECOND „DNI GODZINY:MINUTY:SEKUNDY”
DAY_MINUTE „DNI GODZINY:MINUTY”
DAY_HOUR „DNI GODZINY”
ROK_MIESIĄC „LATA-MIESIĄCE”

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Percona Live Dublin - Podsumowanie wydarzenia i nasze sesje

  2. Jak zapobiegać przekroczeniu limitu czasu połączenia w przypadku dużych importów MySQL

  3. importowanie CSV do phpmyadmina

  4. Tworzenie wysoce dostępnej bazy danych dla Moodle przy użyciu replikacji MySQL

  5. Jak wyeksportować bazę danych mysql za pomocą wiersza polecenia?