PostgreSQL: kèo bóng đá hôm | |||
---|---|---|---|
prev | UP | Chương 9. Các chức năng và toán tử | NEXT |
Bảng 9-30Hiển thị các chức năng có sẵn để xử lý giá trị kèo bóng đá pháp/thời gian, với các chi tiết xuất hiện trong các tiểu mục sau.Bảng 9-29Minh họa các hành vi của các toán tử số học cơ bản (+, *, v.v.). Để biết các chức năng định dạng, tham khảoPhần 9.8. Bạn nên quen với thông tin cơ bản về các loại dữ liệu kèo bóng đá pháp/giờ từPhần 8.5.
Ngoài ra, các toán tử so sánh thông thường được hiển thị trongBảng 9-1Có sẵn cho các loại kèo bóng đá pháp/giờ. kèo bóng đá pháp và dấu thời gian (có hoặc không có múi giờ) đều có thể so sánh, trong khi thời gian (có hoặc không có múi giờ) và các khoảng thời gian chỉ có thể được so sánh với các giá trị khác của cùng loại dữ liệu. Khi so sánh dấu thời gian không có múi giờ với dấu thời gian với múi giờ, giá trị trước đây được giả định được đưa ra trong múi giờ được chỉ định bởitimezoneTham số cấu hình và được xoay thành UTC để so sánh với giá trị sau (đã ở UTC bên trong). Tương tự, giá trị kèo bóng đá pháp được giả định là đại diện cho nửa đêm trongtimezoneVùng khi so sánh nó với dấu kèo bóng đá pháp.
Tất cả các chức năng và toán tử được mô tả bên dưới lấykèo bóng đá pháphoặcdấu kèo bóng đá phápĐầu vào thực sự có hai biến thể: một biến thểkèo bóng đá pháp với múi giờhoặcdấu kèo bóng đá pháp với múi giờ, và một thứ màkèo bóng đá pháp không có múi giờhoặcdấu kèo bóng đá pháp không có múi giờ. Đối với sự ngắn gọn, các biến thể này không được hiển thị riêng. Ngoài ra,+và*toán tử đi kèm theo các cặp giao hoán (ví dụ: cả kèo bóng đá pháp + số nguyên và số nguyên + kèo bóng đá pháp); Chúng tôi chỉ hiển thị một trong mỗi cặp như vậy.
Bảng 9-29. Toán tử kèo bóng đá pháp/giờ
Nhà điều hành | Ví dụ | result |
---|---|---|
+ | kèo bóng đá pháp '2001-09-28' + Integer '7' | kèo bóng đá pháp '2001-10-05' |
+ | kèo bóng đá pháp '2001-09-28' + khoảng '1 giờ' | Timestamp '2001-09-28 01:00:00' |
+ | kèo bóng đá pháp '2001-09-28' + Thời gian '03: 00 ' | Timestamp '2001-09-28 03:00:00' |
+ | Khoảng '1 kèo bóng đá pháp' + khoảng '1 giờ' | Khoảng '1 kèo bóng đá pháp 01:00:00' |
+ | Timestamp '2001-09-28 01:00' + Interval '23 giờ ' | Timestamp '2001-09-29 00:00:00' |
+ | kèo bóng đá pháp '01: 00 ' + khoảng' 3 giờ ' | kèo bóng đá pháp '04: 00: 00 ' |
- | - khoảng '23 giờ ' | Khoảng '-23: 00: 00' |
- | kèo bóng đá pháp '2001-10-01'-kèo bóng đá pháp '2001-09-28' | Số nguyên '3'(kèo bóng đá pháp) |
- | kèo bóng đá pháp '2001-10-01'-Integer '7' | kèo bóng đá pháp '2001-09-24' |
- | kèo bóng đá pháp '2001-09-28'-khoảng '1 giờ' | Timestamp '2001-09-27 23:00:00' |
- | kèo bóng đá pháp '05: 00 ' - kèo bóng đá pháp '03: 00' | Interval '02: 00: 00 ' |
- | kèo bóng đá pháp '05: 00 ' - Khoảng' 2 giờ ' | Time '03: 00: 00 ' |
- | Timestamp '2001-09-28 23:00'-Interval '23 giờ ' | Timestamp '2001-09-28 00:00:00' |
- | Khoảng '1 kèo bóng đá pháp' - Khoảng '1 giờ' | Khoảng '1 kèo bóng đá pháp -01: 00: 00' |
- | Timestamp '2001-09-29 03:00'-Timestamp '2001-09-27 12:00' | Khoảng '1 kèo bóng đá pháp 15:00:00' |
* | 900 * Khoảng '1 giây' | Interval '00: 15: 00 ' |
* | 21 * Khoảng '1 kèo bóng đá pháp' | Khoảng '21 kèo bóng đá pháp ' |
* | Double Precision '3.5' * Interval '1 giờ' | Interval '03: 30: 00 ' |
/ | Khoảng '1 giờ' / độ chính xác gấp đôi '1.5' | Khoảng '00: 40: 00 ' |
Bảng 9-30. Chức năng kèo bóng đá pháp/giờ
chức năng | Return Type | Mô tả | Ví dụ | result |
---|---|---|---|---|
Age (Dấu kèo bóng đá pháp, Dấu kèo bóng đá pháp) |
Khoảng | đối số trừ, tạo ra một"Biểu tượng"Kết quả sử dụng nhiều năm và tháng, thay vì chỉ vài kèo bóng đá pháp | Age (Timestamp '2001-04-10', Timestamp '1957-06-13') | 43 năm 9 Mons 27 kèo bóng đá pháp |
Age (Dấu kèo bóng đá pháp) |
Khoảng | Trừ từcurrent_date (lúc nửa đêm) |
Age (Timestamp '1957-06-13') | 43 năm 8 Mons 3 kèo bóng đá pháp |
clock_timestamp () |
dấu kèo bóng đá pháp với múi giờ | kèo bóng đá pháp và giờ hiện tại (thay đổi trong quá trình thực thi tuyên bố); nhìn thấyPhần 9.9.4 | ||
current_date |
kèo bóng đá pháp | kèo bóng đá pháp hiện tại; nhìn thấyPhần 9.9.4 | ||
current_time |
kèo bóng đá pháp với múi giờ | Thời gian hiện tại trong kèo bóng đá pháp; nhìn thấyPhần 9.9.4 | ||
current_timestamp |
dấu kèo bóng đá pháp với múi giờ | kèo bóng đá pháp và giờ hiện tại (bắt đầu giao dịch hiện tại); nhìn thấyPhần 9.9.4 | ||
date_part (Text, Dấu kèo bóng đá pháp) |
Double Precision | Nhận trường con (tương đương vớiTrích xuất ); nhìn thấyPhần 9.9.1 |
date_part ('giờ', dấu kèo bóng đá pháp '2001-02-16 20:38:40') | 20 |
date_part (Text, Khoảng) |
độ chính xác gấp đôi | Nhận trường con (tương đương vớiTrích xuất ); nhìn thấyPhần 9.9.1 |
date_part ('tháng', khoảng '2 năm 3 tháng') | 3 |
date_trunc (Text, Dấu kèo bóng đá pháp) |
Dấu kèo bóng đá pháp | Cắt ngắn thành độ chính xác được chỉ định; Xem thêmPhần 9.9.2 | date_trunc ('giờ', dấu kèo bóng đá pháp '2001-02-16 20:38:40') | 2001-02-16 20:00:00 |
date_trunc (Text, Khoảng) |
Khoảng | Cắt ngắn thành độ chính xác được chỉ định; Xem thêmPhần 9.9.2 | date_trunc ('giờ', khoảng '2 kèo bóng đá pháp 3 giờ 40 phút') | 2 kèo bóng đá pháp 03:00:00 |
Trích xuất (trườngtừTimestamp) |
Double Precision | Nhận trường con; nhìn thấyPhần 9.9.1 | Trích xuất (giờ từ Timestamp '2001-02-16 20:38:40') | 20 |
Trích xuất (trườngtừKhoảng) |
Double Precision | Nhận trường con; nhìn thấyPhần 9.9.1 | Trích xuất (tháng từ khoảng kèo bóng đá pháp '2 năm 3 tháng') | 3 |
isfinite (kèo bóng đá pháp) |
Boolean | Kiểm tra kèo bóng đá pháp hữu hạn (không phải +/- vô cực) | isfinite (kèo bóng đá pháp '2001-02-16') | TRUE |
isfinite (Timestamp) |
Boolean | Kiểm tra tem kèo bóng đá pháp hữu hạn (không phải +/- Infinity) | isfinite (Timestamp '2001-02-16 21:28:30') | TRUE |
isfinite (Khoảng) |
Boolean | Kiểm tra khoảng kèo bóng đá pháp hữu hạn | isfinite (khoảng '4 giờ') | TRUE |
Justify_days (Khoảng) |
Khoảng | Điều chỉnh khoảng thời gian 30 kèo bóng đá pháp được biểu diễn dưới dạng tháng | Justify_days (khoảng '35 kèo bóng đá pháp ') | 1 Mon 5 kèo bóng đá pháp |
Justify_Hours (Khoảng) |
Khoảng | Điều chỉnh khoảng thời gian 24 giờ được biểu diễn dưới dạng kèo bóng đá pháp | Justify_Hours (khoảng '27 giờ ') | 1 kèo bóng đá pháp 03:00:00 |
Justify_interval (Khoảng) |
Khoảng | Điều chỉnh khoảng kèo bóng đá pháp sử dụngJustify_Days vàJustify_Hours , với các điều chỉnh dấu hiệu bổ sung |
Justify_interval (khoảng '1 mon -1 giờ') | 29 kèo bóng đá pháp 23:00:00 |
địa phương |
kèo bóng đá pháp | Thời gian hiện tại trong kèo bóng đá pháp; nhìn thấyPhần 9.9.4 | ||
LocalTimeStamp |
dấu kèo bóng đá pháp | kèo bóng đá pháp và giờ hiện tại (bắt đầu giao dịch hiện tại); nhìn thấyPhần 9.9.4 | ||
make_date (năm int, tháng int, kèo bóng đá pháp int) |
kèo bóng đá pháp | Tạo các trường từ năm, tháng và kèo bóng đá pháp | make_date (2013, 7, 15) | 2013-07-15 |
make_interval (năm intmặc định 0,tháng intmặc định 0,Tuần intmặc định 0,kèo bóng đá pháp intmặc định 0,giờ intmặc định 0,MINS intmặc định 0,Secs Double PrecisionMặc định 0.0) |
Khoảng | Tạo khoảng từ các năm, tháng, tuần, kèo bóng đá pháp, giờ, phút và giây trường | make_interval (kèo bóng đá pháp = 10) | 10 kèo bóng đá pháp |
make_time (giờ int, min int, Sec Double Precision) |
kèo bóng đá pháp | Tạo kèo bóng đá pháp từ giờ, phút và giây trường | make_time (8, 15, 23.5) | 08:15:23.5 |
make_timestamp (năm int, tháng int, kèo bóng đá pháp int, giờ int, min int, Sec Double Precision) |
Dấu kèo bóng đá pháp | Tạo dấu thời gian từ các trường năm, tháng, kèo bóng đá pháp, giờ, phút và giây | Make_Timestamp (2013, 7, 15, 8, 15, 23.5) | 2013-07-15 08:15:23.5 |
make_timestamptz (năm int, tháng int, kèo bóng đá pháp int, giờ int, min int, Sec Double Precision, [timezone Text]) |
dấu kèo bóng đá pháp với múi giờ | Tạo dấu thời gian với múi giờ từ năm, tháng, kèo bóng đá pháp, giờ, phút và giây; nếu nhưtimezonekhông được chỉ định, múi giờ hiện tại được sử dụng | make_timestamptz (2013, 7, 15, 8, 15, 23.5) | 2013-07-15 08: 15: 23.5+01 |
bây giờ () |
dấu kèo bóng đá pháp với múi giờ | kèo bóng đá pháp và giờ hiện tại (bắt đầu giao dịch hiện tại); nhìn thấyPhần 9.9.4 | ||
statement_timestamp () |
dấu kèo bóng đá pháp với múi giờ | kèo bóng đá pháp và giờ hiện tại (bắt đầu câu lệnh hiện tại); nhìn thấyPhần 9.9.4 | ||
Timeofday () |
Text | kèo bóng đá pháp và giờ hiện tại (nhưclock_timestamp , nhưng dưới dạngTextChuỗi); nhìn thấyPhần 9.9.4 |
||
Giao dịch_timestamp () |
dấu kèo bóng đá pháp với múi giờ | kèo bóng đá pháp và giờ hiện tại (bắt đầu giao dịch hiện tại); nhìn thấyPhần 9.9.4 | ||
to_timestamp (Double Precision) |
dấu kèo bóng đá pháp với múi giờ | Chuyển đổi Epoch Unix (giây kể từ 1970-01-01 00: 00: 00+00) thành dấu kèo bóng đá pháp | TO_TIMESTAMP (1284352323) | 2010-09-13 04: 32: 03+00 |
Ngoài các chức năng này, SQLchồng chéoNhà điều hành được hỗ trợ:
(START1, end1) Overlaps (START2, end2) (START1, LEGN1) Overlaps (START2, LEGN2)
Biểu thức này mang lại sự thật khi hai khoảng thời gian (được xác định bởi điểm cuối của chúng) chồng chéo, sai khi chúng không chồng chéo. Các điểm cuối có thể được chỉ định là các cặp kèo bóng đá pháp, thời gian hoặc tem thời gian; hoặc như một kèo bóng đá pháp, thời gian hoặc tem thời gian theo sau là một khoảng thời gian. Khi một cặp giá trị được cung cấp, bắt đầu hoặc kết thúc có thể được viết trước;chồng chéoTự động lấy giá trị trước đó của cặp khi bắt đầu. Mỗi khoảng kèo bóng đá pháp được coi là đại diện cho khoảng kèo bóng đá pháp nửa mởBắt đầu <= kèo bóng đá pháp < kết thúc, trừ khiBắt đầuvàkết thúcbằng nhau trong trường hợp nó đại diện cho kèo bóng đá pháp đó ngay lập tức. Điều này có nghĩa là hai khoảng kèo bóng đá pháp chỉ có điểm cuối chung không trùng nhau.
Chọn (kèo bóng đá pháp '2001-02-16', kèo bóng đá pháp '2001-12-21') (kèo bóng đá pháp '2001-10-30', kèo bóng đá pháp '2002-10-30');Kết quả:TRUEChọn (kèo bóng đá pháp '2001-02-16', khoảng thời gian '100 kèo bóng đá pháp') chồng chéo (kèo bóng đá pháp '2001-10-30', kèo bóng đá pháp '2002-10-30');Kết quả:SaiChọn (kèo bóng đá pháp '2001-10-29', kèo bóng đá pháp '2001-10-30') (kèo bóng đá pháp '2001-10-30', kèo bóng đá pháp '2001-10-31');Kết quả:SaiChọn (kèo bóng đá pháp '2001-10-30', kèo bóng đá pháp '2001-10-30') (kèo bóng đá pháp '2001-10-30', kèo bóng đá pháp '2001-10-31');Kết quả:TRUE
Khi thêmKhoảngGiá trị để (hoặc trừ mộtKhoảngGiá trị từ) Adấu kèo bóng đá pháp với múi giờGiá trị, thành phần kèo bóng đá pháp tiến bộ hoặc giảm kèo bóng đá phápdấu kèo bóng đá pháp với múi giờTheo số kèo bóng đá pháp được chỉ định, giữ thời gian trong kèo bóng đá pháp giống nhau. Trong thời gian tiết kiệm ánh sáng ban kèo bóng đá pháp thay đổi (khi múi giờ phiên được đặt thành múi giờ nhận ra DST), điều này có nghĩa làKhoảng '1 kèo bóng đá pháp'không nhất thiết phải bằngKhoảng '24 giờ '. Ví dụ: với múi giờ phiên được đặt thànhMỹ/Denver:
Chọn dấu thời gian với múi giờ '2005-04-02 12: 00: 00-07' + khoảng '1 kèo bóng đá pháp';result:2005-04-03 12:00:00-06Chọn dấu kèo bóng đá pháp với múi giờ '2005-04-02 12: 00: 00-07' + khoảng kèo bóng đá pháp '24 giờ ';Kết quả:2005-04-03 13:00:00-06
Điều này xảy ra vì một giờ đã bị bỏ qua do thay đổi thời gian tiết kiệm ánh sáng ban kèo bóng đá pháp tại2005-04-03 02:00:00Trong múi giờMỹ/Denver.
Lưu ý Có thể có sự mơ hồ trongthángTrường được trả về bởiAge
Bởi vì các tháng khác nhau có số kèo bóng đá pháp khác nhau.POSTGRESQLS tiếp cận sử dụng tháng từ trước đó của hai kèo bóng đá pháp khi tính toán một phần một phần. Ví dụ,Age ('2004-06-01', '2004-04-30')Sử dụng tháng 4 để mang lại1 mon 1 kèo bóng đá pháp, trong khi sử dụng có thể sẽ mang lại1 Thứ Hai 2 kèo bóng đá phápVì có thể có 31 kèo bóng đá pháp, trong khi tháng Tư chỉ có 30.
phép trừ kèo bóng đá pháp và dấu thời gian cũng có thể phức tạp. Một cách đơn giản về mặt khái niệm để thực hiện phép trừ là chuyển đổi từng giá trị thành một số giây bằng cách sử dụngTrích xuất (kỷ nguyên từ ...), sau đó trừ kết quả; Điều này tạo ra số lượnggiâyGiữa hai giá trị. Điều này sẽ điều chỉnh số kèo bóng đá pháp trong mỗi tháng, thay đổi múi giờ và điều chỉnh thời gian tiết kiệm ánh sáng ban kèo bóng đá pháp. Phép trừ các giá trị kèo bóng đá pháp hoặc dấu thời gian với"-"Nhà điều hành trả về số kèo bóng đá pháp (24 giờ) và giờ/phút/giây giữa các giá trị, thực hiện các điều chỉnh giống nhau. TheAge
Hàm trả về năm, tháng, kèo bóng đá pháp và giờ/phút/giây, thực hiện phép trừ trường theo từng trường và sau đó điều chỉnh các giá trị trường âm. Các truy vấn sau đây minh họa sự khác biệt trong các phương pháp này. Các kết quả mẫu được tạo ra vớiTimeZone = 'US/East'; Có sự thay đổi thời gian tiết kiệm ánh sáng ban kèo bóng đá pháp giữa hai kèo bóng đá pháp được sử dụng:
Chọn trích xuất (kỷ nguyên từ Timestampz '2013-07-01 12:00:00')- Trích xuất (kỷ nguyên từ Timestampz '2013-03-01 12:00:00');Kết quả:10537200Chọn (Trích xuất (Epoch từ Timestampz '2013-07-01 12:00:00')- Trích xuất (kỷ nguyên từ Timestampz '2013-03-01 12:00:00'))) / 60 / 60/24;Kết quả:121.958333333333Chọn Timestamptz '2013-07-01 12:00:00'-Timestampz '2013-03-01 12:00:00';Kết quả:121 kèo bóng đá pháp 23:00:0035541_35626Kết quả:4 Mons
Trích xuất
, date_part
Trích xuất (trườngtừNguồn)
TheTrích xuất
Hàm lấy các trường con như năm hoặc giờ kể từ kèo bóng đá pháp/giá trị thời gian.Nguồnphải là biểu thức giá trị của loạiDấu kèo bóng đá pháp, kèo bóng đá pháphoặcKhoảng. (Biểu thức của loạikèo bóng đá phápđược đúc thànhTimestampvà do đó cũng có thể được sử dụng.)trườnglà một định danh hoặc chuỗi chọn trường nào để trích xuất từ giá trị nguồn. TheTrích xuất
Hàm trả về các giá trị của loạiDouble Precision. Sau đây là tên trường hợp lệ:
Thế kỷ
Chọn trích xuất (thế kỷ từ Timestamp '2000-12-16 12:21:13');Kết quả:20Chọn trích xuất (thế kỷ từ Timestamp '2001-02-16 20:38:40');Kết quả:21
Thế kỷ thứ nhất bắt đầu tại 0001-01-01 00:00:00 sau Công nguyên, mặc dù họ không biết điều đó vào thời điểm đó. Định nghĩa này áp dụng cho tất cả các quốc gia lịch Gregorian. Không có thế kỷ số 0, bạn đi từ -1 thế kỷ đến 1 thế kỷ. Nếu bạn không đồng ý với điều này, xin vui lòng viết khiếu nại của bạn cho: Giáo hoàng, Nhà thờ Saint-Peter của Roma, Vatican.
choTimestampGiá trị, kèo bóng đá pháp (của tháng) (1 - 31); vìKhoảngGiá trị, số kèo bóng đá pháp
Chọn trích xuất (kèo bóng đá pháp từ dấu thời gian '2001-02-16 20:38:40');Kết quả:16Chọn trích xuất (kèo bóng đá pháp từ khoảng '40 kèo bóng đá pháp 1 phút ');Kết quả:40
Trường năm chia cho 10
Chọn trích xuất (thập kỷ từ dấu kèo bóng đá pháp '2001-02-16 20:38:40');Kết quả:200
kèo bóng đá pháp trong tuần là Chủ nhật (0) đến thứ bảy (6)
Chọn Trích xuất (Dow từ Timestamp '2001-02-16 20:38:40');Kết quả:5
Lưu ý rằngTrích xuất
kèo bóng đá pháp số trong tuần khác với kèo bóng đá phápto_char (..., 'd')
chức năng.
kèo bóng đá pháp trong năm (1 - 365/366)
Chọn trích xuất (doy từ Timestamp '2001-02-16 20:38:40');Kết quả:47
chodấu kèo bóng đá pháp với múi giờGiá trị, số giây kể từ 1970-01-01 00:00:00 UTC (âm cho dấu kèo bóng đá pháp trước đó); vìkèo bóng đá phápvàDấu kèo bóng đá phápGiá trị, số giây danh nghĩa kể từ 1970-01-01 00:00:00, mà không liên quan đến các quy tắc về thời gian hoặc sáng ban kèo bóng đá pháp; vìKhoảngGiá trị, tổng số giây trong khoảng
Chọn trích xuất (kỷ nguyên từ dấu kèo bóng đá pháp với múi giờ '2001-02-16 20: 38: 40.12-08');result:982384720.12Chọn Trích xuất (Epoch từ Timestamp '2001-02-16 20: 38: 40.12');Kết quả:982355920.12Chọn trích xuất (kỷ nguyên từ khoảng '5 kèo bóng đá pháp 3 giờ');Kết quả:442800
Bạn có thể chuyển đổi giá trị kỷ nguyên trở lạidấu kèo bóng đá pháp với múi giờvớito_timestamp
:
Chọn To_Timestamp (982384720.12);Kết quả:2001-02-17 04: 38: 40.12+00
Coi chừng áp dụngto_timestamp
đến một kỷ nguyên được trích xuất từ Akèo bóng đá pháphoặcTimestampGiá trị có thể tạo ra kết quả gây hiểu lầm: Kết quả sẽ giả định một cách hiệu quả rằng giá trị ban đầu đã được đưa ra trong UTC, có thể không phải là trường hợp.
Trường giờ (0 - 23)
Chọn Trích xuất (giờ từ Timestamp '2001-02-16 20:38:40');Kết quả:20
kèo bóng đá pháp trong tuần là Thứ Hai (1) đến Chủ nhật (7)
Chọn trích xuất (Isodow từ Timestamp '2001-02-18 20:38:40');Kết quả:7
Điều này giống hệt vớiDowNgoại trừ Chủ nhật. Điều này phù hợp vớiISO8601 kèo bóng đá pháp trong tuần.
TheISO8601 năm đánh số tuần mà kèo bóng đá pháp rơi vào (không áp dụng cho các khoảng thời gian)
Chọn Trích xuất (Isoyear từ kèo bóng đá pháp '2006-01-01');Kết quả:2005Chọn trích xuất (Isoyear từ kèo bóng đá pháp '2006-01-02');Kết quả:2006
mỗiISO8601 Năm đánh dấu tuần bắt đầu với Thứ Hai trong tuần có chứa kèo bóng đá pháp 4 tháng 1, vì vậy vào đầu tháng 1 hoặc cuối tháng 12ISONăm có thể khác với năm Gregorian. XemTuầnTrường để biết thêm thông tin.
Trường này không có sẵn trong các bản phát hành PostgreSQL trước 8.3.
Thekèo bóng đá pháp JulianTương ứng với kèo bóng đá pháp hoặc dấu thời gian (không áp dụng cho các khoảng thời gian). Dấu thời gian không phải là nửa đêm cục bộ dẫn đến giá trị phân số. Nhìn thấyPhần B.7Để biết thêm thông tin.
Chọn trích xuất (Julian từ kèo bóng đá pháp '2006-01-01');Kết quả:2453737Chọn trích xuất (Julian từ Timestamp '2006-01-01 12:00');Kết quả:2453737.5
Trường thứ hai, bao gồm các bộ phận phân số, nhân với 1 000 000; Lưu ý rằng điều này bao gồm các giây đầy đủ
Chọn trích xuất (microseconds từ kèo bóng đá pháp '17: 12: 28.5 ');Kết quả:28500000
Thiên niên kỷ
Chọn Trích xuất (Thiên niên kỷ từ Timestamp '2001-02-16 20:38:40');result:3
Năm trong những năm 1900 là trong thiên niên kỷ thứ hai. Thiên niên kỷ thứ ba bắt đầu từ kèo bóng đá pháp 1 tháng 1 năm 2001.
Trường thứ hai, bao gồm các phần phân số, nhân với 1000. Lưu ý rằng điều này bao gồm các giây đầy đủ.
Chọn trích xuất (miliseconds từ kèo bóng đá pháp '17: 12: 28.5 ');Kết quả:28500
Trường biên bản (0 - 59)
Chọn Trích xuất (Phút từ Timestamp '2001-02-16 20:38:40');Kết quả:38
choTimestampGiá trị, số của tháng trong năm (1 - 12); vìKhoảngGiá trị, số tháng, modulo 12 (0 - 11)
Chọn trích xuất (tháng từ Timestamp '2001-02-16 20:38:40');Kết quả:2Chọn trích xuất (tháng từ khoảng '2 năm 3 tháng');Kết quả:3Chọn Trích xuất (tháng từ khoảng '2 năm 13 tháng');result:1
quý trong năm (1 - 4) kèo bóng đá pháp đó là
Chọn trích xuất (quý từ Timestamp '2001-02-16 20:38:40');Kết quả:1
Trường thứ hai, bao gồm các bộ phận phân số (0 - 59[1])
Chọn trích xuất (thứ hai từ dấu kèo bóng đá pháp '2001-02-16 20:38:40');Kết quả:40Chọn Trích xuất (thứ hai theo kèo bóng đá pháp '17: 12: 28.5 ');Kết quả:28.5
Múi giờ bù từ UTC, được đo bằng giây. Các giá trị dương tương ứng với các múi giờ ở phía đông UTC, các giá trị âm đối với các vùng phía tây UTC. (Về mặt kỹ thuật,POSTGRESQLKhông sử dụng UTC vì số giây nhảy không được xử lý.)
Thành phần giờ của phần bù múi giờ
Thành phần phút của phần bù múi giờ
Số lượng củaISO8601 Tuần số tuần trong năm. Theo định nghĩa, ISO Weeks bắt đầu vào thứ Hai và tuần đầu tiên của một năm chứa kèo bóng đá pháp 4 tháng 1 năm đó. Nói cách khác, thứ Năm đầu tiên của một năm là vào tuần 1 của năm đó.
Trong hệ thống đánh số tuần ISO, có thể các kèo bóng đá pháp đầu tháng 1 có thể là một phần của tuần thứ 52 hoặc 53 của năm trước, và vào cuối tháng 12 tháng 12 là một phần của tuần đầu tiên của năm sau. Ví dụ,2005-01-01là một phần của tuần thứ 53 của năm 2004 và2006-01-01là một phần của tuần thứ 52 của năm 2005, trong khi2012-12-31là một phần của tuần đầu tiên của năm 2013. Bạn nên sử dụngISOYEARtrường cùng vớiTuầnĐể có kết quả nhất quán.
Chọn Trích xuất (Tuần từ Timestamp '2001-02-16 20:38:40');Kết quả:7
Trường năm. Hãy nhớ rằng không có0 AD, Vì vậy, trừBCnăm từADNăm nên được thực hiện một cách cẩn thận.
Chọn trích xuất (năm từ Timestamp '2001-02-16 20:38:40');Kết quả:2001
Lưu ý:Khi giá trị đầu vào là +/- vô cực,
Trích xuất
Trả về +/- Infinity cho các trường tăng đơn điệu (Epoch, Julian, năm, ISOYEAR, Decade, CenturyvàThiên niên kỷ). Đối với các trường khác, null được trả về.PostgreSQLPhiên bản trước 9.6 đã trả về 0 cho tất cả các trường hợp đầu vào vô hạn.
TheTrích xuất
Hàm chủ yếu nhằm mục đích xử lý tính toán. Để định dạng giá trị kèo bóng đá pháp/thời gian để hiển thị, xemPhần 9.8.
Thedate_part
Hàm được mô hình hóa trên truyền thốngingrestương đương vớiSQL-Standard Chức năngTrích xuất
:
date_part ('trường',Nguồn)
Lưu ý rằng ở đâytrườngTham số cần phải là một giá trị chuỗi, không phải là một tên. Tên trường hợp lệ chodate_part
giống như đối vớiTrích xuất
.
Chọn Date_Part ('kèo bóng đá pháp', Timestamp '2001/02-16 20:38:40');Kết quả:16Chọn Date_Part ('Giờ', Khoảng '4 giờ 3 phút');Kết quả:4
date_trunc
hàmdate_trunc
về mặt khái niệm tương tự nhưTrunc
hàm cho số.
date_trunc ('trường',Nguồn)
Nguồnlà biểu thức giá trị của loạidấu kèo bóng đá pháphoặcKhoảng. (Giá trị loạikèo bóng đá phápvàkèo bóng đá phápđược đúc tự động đếnTimestamphoặcKhoảng, tương ứng.)trườngChọn chính xác để cắt giảm giá trị đầu vào. Giá trị trả về loạiDấu kèo bóng đá pháphoặcKhoảngVới tất cả các trường ít quan trọng hơn một trường được chọn thành 0 (hoặc một, cho kèo bóng đá pháp và tháng).
Giá trị hợp lệ chotrườnglà:
microseconds |
Milliseconds |
thứ hai |
phút |
giờ |
kèo bóng đá pháp |
tuần |
tháng |
quý |
năm |
Decade |
Century |
Thiên niên kỷ |
ví dụ:
Chọn DATE_TRUNC ('Giờ', Timestamp '2001-02-16 20:38:40');Kết quả:2001-02-16 20:00:00Chọn DATE_TRUNC ('Năm', Timestamp '2001-02-16 20:38:40');Kết quả:2001-01-01 00:00:00
TheTại múi giờChuyển đổi kèo bóng đá phápKhông có múi giờđến/từ kèo bóng đá phápvới múi giờvàkèo bóng đá phápgiá trị cho các múi giờ khác nhau.Bảng 9-31Hiển thị các biến thể của nó.
Bảng 9-31.Tại múi giờBiến thể
Biểu thức | Return Type | Mô tả |
---|---|---|
dấu kèo bóng đá pháp không có múi giờTại múi giờkhu vực | dấu kèo bóng đá pháp với múi giờ | Điều trị tem kèo bóng đá phápKhông có múi giờnhư nằm trong múi giờ được chỉ định |
dấu kèo bóng đá pháp với múi giờTại múi giờkhu vực | dấu kèo bóng đá pháp không có múi giờ | Chuyển đổi tem kèo bóng đá pháp đã chovới múi giờđến múi giờ mới, không có chỉ định múi giờ |
kèo bóng đá pháp với múi giờTại múi giờkhu vực | kèo bóng đá pháp với múi giờ | Chuyển đổi kèo bóng đá pháp đã chovới múi giờđến múi giờ mới |
Trong các biểu thức này, múi giờ mong muốnkhu vựccó thể được chỉ định dưới dạng chuỗi văn bản (ví dụ:'America/los_angele') hoặc như một khoảng kèo bóng đá pháp (ví dụ:Interval '-08: 00'). Trong trường hợp văn bản, tên múi giờ có thể được chỉ định theo bất kỳ cách nào được mô tả trongPhần 8.5.3.
ví dụ (giả sử múi giờ địa phương làAmerica/los_angele):
Chọn dấu kèo bóng đá pháp '2001-02-16 20:38:40' tại múi giờ 'Mỹ/Denver';Kết quả:2001-02-16 19:38:40-08Chọn dấu kèo bóng đá pháp với múi giờ '2001-02-16 20: 38: 40-05' tại múi giờ 'Mỹ/Denver';Kết quả:2001-02-16 18:38:40Chọn dấu kèo bóng đá pháp '2001-02-16 20: 38: 40-05' tại múi giờ 'Châu Á/Tokyo' tại múi giờ 'Mỹ/Chicago';Kết quả:2001-02-16 05:38:40
Ví dụ đầu tiên thêm múi giờ vào một giá trị thiếu nó và hiển thị giá trị bằng cách sử dụng hiện tạitimezoneCài đặt. Ví dụ thứ hai chuyển tem kèo bóng đá pháp với giá trị múi giờ sang múi giờ được chỉ định và trả về giá trị mà không có múi giờ. Điều này cho phép lưu trữ và hiển thị các giá trị khác với hiện tạitimezoneCài đặt. Ví dụ thứ ba chuyển đổi kèo bóng đá pháp Tokyo sang kèo bóng đá pháp ở Chicago. Chuyển đổikèo bóng đá phápGiá trị cho các múi giờ khác sử dụng các quy tắc múi giờ hoạt động hiện tại vì không có kèo bóng đá pháp nào được cung cấp.
hàmtimezone
(khu vực, Timestamp)tương đương với cấu trúc hình thành SQLDấu kèo bóng đá phápTại múi giờkhu vực.
PostgreSQLCung cấp một số hàm trả về các giá trị liên quan đến kèo bóng đá pháp và thời gian hiện tại. Các hàm tiêu chuẩn SQL này đều có giá trị trả về dựa trên thời gian bắt đầu của giao dịch hiện tại:
current_date Current_time Current_timestamp Current_time (Precision) Current_timestamp (chính xác) Địa phương LocalTimeStamp Địa phương (chính xác) LocalTimeStamp (chính xác)
current_time
vàcurrent_timestamp
Cung cấp các giá trị với múi giờ;địa phương
vàLocalTimeStamp
Cung cấp các giá trị không có múi giờ.
current_time
, current_timestamp
, địa phương
vàLocalTimestamp
có thể tùy ý lấy một tham số chính xác, điều này gây ra kết quả được làm tròn đến nhiều chữ số phân số trong trường thứ hai. Không có tham số chính xác, kết quả được đưa ra cho độ chính xác đầy đủ.
Một số ví dụ:
Chọn current_time;Kết quả:14:39:53.662522-05Chọn current_date;Kết quả:2001-12-23Chọn current_timestamp;Kết quả:2001-12-23 14:39:53.662522-05Chọn current_timestamp (2);Kết quả:2001-12-23 14:39:53.66-05Chọn LocalTimeStamp;result:2001-12-23 14:39:53.662522
Vì các chức năng này trả về kèo bóng đá pháp bắt đầu của giao dịch hiện tại, giá trị của chúng không thay đổi trong giao dịch. Đây được coi là một tính năng: Mục đích là cho phép một giao dịch duy nhất có một khái niệm nhất quán về"Hiện tại"kèo bóng đá pháp, để nhiều sửa đổi trong cùng một giao dịch mang cùng kèo bóng đá pháp.
Lưu ý:Các hệ thống cơ sở dữ liệu khác có thể thúc đẩy các giá trị này thường xuyên hơn.
POSTGRESQLCũng cung cấp các chức năng trả về kèo bóng đá pháp bắt đầu của câu lệnh hiện tại, cũng như kèo bóng đá pháp hiện tại thực tế tại ngay lập tức chức năng được gọi. Danh sách đầy đủ các chức năng kèo bóng đá pháp tiêu chuẩn không SQL là:
Giao dịch_timestamp () statement_timestamp () clock_timestamp () Timeofday () Hiện nay()
Giao dịch_timestamp ()
tương đương vớicurrent_timestamp
, nhưng được đặt tên để phản ánh rõ ràng những gì nó trả về.statement_timestamp ()
Trả về kèo bóng đá pháp bắt đầu của câu lệnh hiện tại (cụ thể hơn là kèo bóng đá pháp nhận thông báo lệnh mới nhất từ máy khách).statement_timestamp ()
vàGiao dịch_timestamp ()
Trả về cùng một giá trị trong lệnh đầu tiên của giao dịch, nhưng có thể khác nhau trong các lệnh tiếp theo.clock_timestamp ()
Trả về kèo bóng đá pháp hiện tại thực tế và do đó giá trị của nó thay đổi ngay cả trong một lệnh SQL duy nhất.Timeofday ()
là một lịch sửPOSTGRESQLHàm. Giốngclock_timestamp ()
, nó trả về kèo bóng đá pháp hiện tại thực tế, nhưng theo định dạngTextchuỗi chứ không phảidấu kèo bóng đá pháp với múi giờGiá trị.bây giờ ()
là truyền thốngPOSTGRESQLtương đương vớiGiao dịch_timestamp ()
.
Tất cả các loại dữ liệu kèo bóng đá pháp/giờ cũng chấp nhận giá trị theo nghĩa đen đặc biệtBây giờĐể chỉ định kèo bóng đá pháp và giờ hiện tại (một lần nữa, được hiểu là thời gian bắt đầu giao dịch). Do đó, ba phần sau đều trả về cùng một kết quả:
Chọn current_timestamp; Chọn bây giờ (); Chọn dấu kèo bóng đá pháp 'bây giờ'; - nhưng xem mẹo bên dưới
Tip:Không sử dụng biểu mẫu thứ ba khi chỉ định giá trị sẽ được đánh giá sau, ví dụ trong mộtMặc địnhmệnh đề cho một cột bảng. Hệ thống sẽ chuyển đổiBây giờđến ADấu kèo bóng đá phápNgay sau khi hằng số được phân tích cú pháp, do đó khi cần giá trị mặc định, kèo bóng đá pháp tạo bảng sẽ được sử dụng! Hai biểu mẫu đầu tiên sẽ không được đánh giá cho đến khi giá trị mặc định được sử dụng, vì chúng là các cuộc gọi chức năng. Do đó, họ sẽ đưa ra hành vi mong muốn của việc mặc định đến thời điểm chèn hàng. (Xem thêmPhần 8.5.1.4.)
Các chức năng sau đây có sẵn để trì hoãn việc thực thi quy trình máy chủ:
pg_s ngủ (giây) pg_s ngủ_for (Khoảng) pg_s ngủ_until (dấu kèo bóng đá pháp với múi giờ)
pg_s ngủ
Làm cho quá trình của phiên hiện tại ngủ cho đếngiâygiây đã trôi qua.giâylà giá trị của loạiDouble Precision, vì vậy có thể chỉ định độ trễ phân đoạn thứ hai.PG_SLEEP_FOR
là hàm tiện lợi cho kèo bóng đá pháp ngủ lớn hơn được chỉ định làKhoảng. PG_SLEEP_UNTIL
là một hàm tiện lợi khi mong muốn kèo bóng đá pháp thức dậy cụ thể. Ví dụ:
chọn pg_s ngủ (1.5); Chọn pg_sleep_for ('5 phút'); Chọn PG_SLEEP_UNTIL ('kèo bóng đá pháp mai 03:00');
Lưu ý:Độ phân giải hiệu quả của khoảng kèo bóng đá pháp ngủ là đặc trưng cho nền tảng; 0,01 giây là một giá trị chung. Độ trễ giấc ngủ sẽ ít nhất là miễn là quy định. Nó có thể dài hơn tùy thuộc vào các yếu tố như tải máy chủ. Cụ thể,
pg_sleep_until
không được đảm bảo sẽ thức dậy chính xác vào thời điểm đã chỉ định, nhưng nó sẽ không thức dậy sớm hơn.
CẢNH BÁO |
Đảm bảo rằng phiên của bạn không giữ nhiều khóa hơn mức cần thiết khi gọi |
[1] |
60 Nếu bước nhảy được thực hiện bởi hệ điều hành |