Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ví dụ EXTRACT () - MySQL

Trong MySQL, bạn có thể sử dụng EXTRACT() chức năng trích xuất các bộ phận từ một ngày tháng. Ví dụ:bạn có thể trích xuất phần năm, phần tháng hoặc phần ngày, v.v. Bạn cũng có thể trích xuất các phần từ thành phần thời gian, chẳng hạn như phút, giây, micro giây, v.v.

Bài viết này có các ví dụ để minh chứng.

Cú pháp

Cú pháp như sau:

 EXTRACT (đơn vị TỪ ngày) 

Đơn vị unit là phần ngày mà bạn muốn trích xuất và date là giá trị ngày tháng để trích xuất phần đó.

Xem bảng ở cuối bài viết này để biết danh sách các từ chỉ định đơn vị hợp lệ.

Ví dụ 1

Dưới đây là một ví dụ để chứng minh cách sử dụng cơ bản của hàm.

 CHỌN CHIẾT XUẤT (NĂM TỪ '2019-01-01') LÀM 'Kết quả'; 

Kết quả:

 + -------- + | Kết quả | + -------- + | 2019 | + -------- + 

Ví dụ 2 - Phần ngày tháng khác

Ở đây tôi trích xuất các phần ngày tháng khác nhau từ một ngày tháng.

 SET @date ='2019-10-03'; CHỌN CHI TIẾT (NGÀY TỪ @date) NHƯ 'Ngày', TRÍCH (THÁNG TỪ @date) LÀM 'Tháng', CHIẾT XUẤT (NĂM TỪ @date) NHƯ 'Năm '; 

Kết quả:

 + ------ + ------- + ------ + | Ngày | Tháng | Năm | + ------ + ------- + ------ + | 3 | 10 | 2019 | + ------ + ------- + ------ + 

Ví dụ 3 - Trích xuất các phần thời gian

Ở đây tôi trích xuất các phần thời gian khác nhau của một ngày.

 SET @date ='2019-10-03 12:35:05.123456'; CHỌN CHI TIẾT (GIỜ TỪ @date) LÀM 'Giờ', TRÍCH (PHÚT TỪ @date) LÀM 'Phút', TRÍCH (GIÂY TỪ @date) ngày) NHƯ 'Giây', TRÍCH (MICROSECOND TỪ @date) NHƯ 'Micro giây'; 

Kết quả:

 + ------- + --------- + --------- + -------------- + | Giờ | Biên bản | Giây | Microseconds | + ------- + --------- + --------- + -------------- + | 12 | 35 | 5 | 123456 | + ------- + --------- + --------- + -------------- + 

Ví dụ 4 - Kết hợp các chỉ định đơn vị

Bạn cũng có thể kết hợp các từ chỉ định đơn vị, như sau:

 SET @date ='2019-10-03 12:35:05.123456'; CHỌN CHI TIẾT (HOUR_MICROSECOND TỪ @date) NHƯ 'Kết quả'; 

Kết quả:

 + -------------- + | Kết quả | + -------------- + | 123505123456 | + -------------- + 

Ví dụ này trả về mọi thứ từ phần giờ đến phần micro giây.

Một ví dụ về cơ sở dữ liệu

Dưới đây là một ví dụ về trích xuất năm và tháng từ một cột trong cơ sở dữ liệu:

 SỬ DỤNG sakila; CHỌN Payment_date AS 'Date / Time', CHIẾT XUẤT (NĂM_MONTH TỪ Payment_date) AS 'Năm / Tháng' Thanh toán FROMWHERE Payment_id =1; 

Kết quả:

 + --------------------- + ------------ + | Ngày / Giờ | Năm / Tháng | + --------------------- + ------------ + | 2005-05-25 11:30:37 | 200505 | + --------------------- + ------------ + 

Ngày / Giờ hiện tại

Ở đây, tôi trích xuất phần tháng từ một ngày được tạo bằng CURDATE() chức năng.

 SELECT CURDATE (), EXTRACT (THÁNG TỪ CURDATE ()); 

Kết quả:

 + ------------ + ------------------------------- + | CURDATE () | TRÍCH (THÁNG TỪ CURDATE ()) | + ------------ + --------------------------- ---- + | 2018-06-26 | 6 | + ------------ + ------------------------------- +  

Trong ví dụ này, tôi trích xuất phần giờ từ ngày và giờ hiện tại (được tạo bằng NOW() chức năng).

 CHỌN NGAY BÂY GIỜ (), TRÍCH (GIỜ TỪ BÂY GIỜ ()); 

Kết quả:

 + --------------------- + ------------------------ - + | NGAY BÂY GIỜ () | TRÍCH (GIỜ TỪ BÂY GIỜ ()) | + --------------------- + ------------------ -------- + | 2018-06-26 09:01:46 | 9 | + --------------------- + ------------------------- - + 

Giá trị mong đợi

Bảng sau đây hiển thị các giá trị đơn vị hợp lệ và định dạng mong đợi của chúng.

unit Giá trị Dự kiến ​​expr Định dạng
MICROSECOND MICROSECONDS
THỨ HAI GIÂY
PHÚT PHÚT
GIỜ GIỜ
NGÀY NGÀY
TUẦN TUẦN
THÁNG THÁNG
QUÝ QUARTERS
NĂM NĂM
SECOND_MICROSECOND ‘SECONDS.MICROSECONDS’
MINUTE_MICROSECOND ‘PHÚT:SECONDS.MICROSECONDS’
MINUTE_SECOND ‘MINUTES:SECONDS’
HOUR_MICROSECOND ‘GIỜ:PHÚT:SECONDS.MICROSECONDS’
HOUR_SECOND ‘GIỜ:PHÚT:GIÂY’
HOUR_MINUTE ‘GIỜ:PHÚT’
DAY_MICROSECOND ‘NGÀY GIỜ:PHÚT:SECONDS.MICROSECONDS’
DAY_SECOND ‘NGÀY GIỜ:PHÚT:GIÂY’
DAY_MINUTE ‘NGÀY GIỜ:PHÚT’
DAY_HOUR ‘DAYS GIURS’
YEAR_MONTH ‘NĂM-THÁNG’

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. phpMyAdmin trên MySQL 8.0

  2. Tính tổng số đang chạy trong MySQL

  3. Làm cách nào để hiển thị lỗi cho truy vấn MySQLi của tôi?

  4. Cách Unpivot Table trong MySQL

  5. Bạn có thể truy cập giá trị tăng tự động trong MySQL trong một câu lệnh không?