Hàm MySQL EXTRACT () có thể sử dụng các đơn vị ghép sau -
- SECOND_MICROSECOND
- MINUTE_MICROSECOND
- HOUR_MICROSECOND
- DAY_MICROSECOND
- MINUTE_SECOND
- HOUR_SECOND
- HOUR_MINUTE
- DAY_SECOND
- DAY_MINUTE
- DAY_HOUR
- YEAR_MONTH
Một số ví dụ về các đơn vị hợp chất này được sử dụng trong hàm EXTRACT () như sau -
mysql> Select EXTRACT(YEAR_MONTH from '2017-10-20'); +---------------------------------------+ | EXTRACT(YEAR_MONTH from '2017-10-20') | +---------------------------------------+ | 201710 | +---------------------------------------+ 1 row in set (0.00 sec)
Truy vấn trên sẽ trả về giá trị năm và tháng kể từ ngày.
mysql> Select EXTRACT(DAY_HOUR from '2017-10-20 05:46:45'); +----------------------------------------------+ | EXTRACT(DAY_HOUR from '2017-10-20 05:46:45') | +----------------------------------------------+ | 2005 | +----------------------------------------------+ 1 row in set (0.00 sec)
Truy vấn trên sẽ trả về giá trị ngày và giờ từ một ngày.
Một điều chúng ta phải lưu ý rằng các đơn vị ghép được đề cập ở trên là một tập hợp giá trị hoàn chỉnh, tức là nếu chúng ta sử dụng DAY_MINUTE, MySQL sẽ trả về DAY, HOUR và MINUTE. Có nghĩa là bất kỳ giá trị nào thường được mong đợi sẽ được điền vào giữa đơn vị bắt đầu và đơn vị kết thúc.
Ví dụ:truy vấn dưới đây đang sử dụng đơn vị ghép DAY_MICROSECOND và MySQL trả về DAY, HOUR, MINUTE, SECOND và MICROSECOND. Có nghĩa là các giá trị HOUR, MINUTE và SECOND được điền vào giữa DAY và MICROSECOND.
mysql> Select EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356'); +---------------------------------------------------------------------------+ | EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356') | +---------------------------------------------------------------------------+ | 22055245102356 | +---------------------------------------------------------------------------+ 1 row in set (0.00 sec)