Trong PostgreSQL, extract()
hàm truy xuất các trường con như năm, tháng, giờ hoặc phút, một phần từ giá trị ngày / giờ.
Nó tương đương với date_part()
, mặc dù có cú pháp hơi khác một chút.
Cú pháp
Cú pháp như sau:
EXTRACT(field FROM source)
Ở đâu:
-
field
là một số nhận dạng hoặc chuỗi chọn trường để trích xuất từ giá trị nguồn. -
source
là dấu thời gian hoặc một khoảng thời gian .
Ví dụ - Dấu thời gian
Dưới đây là một ví dụ cơ bản để minh họa cách truy xuất trường từ dấu thời gian giá trị.
SELECT extract(hour FROM timestamp '2022-10-30 10:11:35');
Kết quả:
10
Ví dụ này truy xuất trường giờ từ dấu thời gian giá trị.
Như đã đề cập, đối số đầu tiên có thể là một định danh hoặc chuỗi. Đây là một trong những điểm khác biệt giữa extract()
và date_part()
. Khi sử dụng date_part()
, bạn phải cung cấp một chuỗi cho đối số này.
Đây là ví dụ tương tự một lần nữa, ngoại trừ dưới dạng một chuỗi.
SELECT extract('hour' FROM timestamp '2022-10-30 10:11:35');
Kết quả:
10
Dưới đây là một ví dụ có cùng dấu thời gian, nhưng lần này tôi truy xuất trường năm.
SELECT extract(year FROM timestamp '2022-10-30 10:11:35');
Kết quả:
2022
Ví dụ - Khoảng thời gian
Trong ví dụ này, tôi truy xuất một phần ngày từ khoảng thời gian giá trị.
SELECT extract(hour FROM interval '7 hours 45 minutes');
Kết quả:
7
Trong ví dụ tiếp theo, hàm trả về số giờ một cách chính xác, mặc dù tôi chỉ cung cấp số phút.
SELECT extract(hour FROM interval '120 minutes');
Kết quả:
2
Tuy nhiên, đừng tin tưởng vào kỹ thuật này. Bạn có thể thấy rằng không phải lúc nào bạn cũng nhận được kết quả như mong đợi.
Ví dụ:
SELECT extract(hour FROM interval '100 minutes');
Kết quả:
1
Và một cái khác:
SELECT extract(minute FROM interval '2 hours');
Kết quả:
0
Tên trường
Đối số đầu tiên có thể là bất kỳ đối số nào sau đây:
-
century
-
day
-
decade
-
dow
-
doy
-
epoch
-
hour
-
isodow
-
isoyear
-
microseconds
-
millennium
-
milliseconds
-
minute
-
month
-
quarter
-
second
-
timezone
-
timezone_hour
-
timezone_minute
-
week
-
year
Các giá trị này giống với các giá trị hợp lệ cho date_part()
chức năng.