Phiên bản được hỗ trợ:hiện tại(173689_382016 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

9.9. Chức năng kèo bóng đá c1/giờ và Người vận hành

Bảng 9-28Hiển thị các chức năng có sẵn cho giá trị kèo bóng đá c1/thời gian Xử lý, với các chi tiết xuất hiện trong các tiểu mục sau.Bảng 9-27Minh họa các hành vi của số học cơ bản người vận hành (+, *,, vân vân.). Để biết các chức năng định dạng, tham khảoPhần 9.8. Bạn nên quen thuộc với thông tin cơ bản về các loại dữ liệu kèo bóng đá c1/giờ từPhần 8.5.

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 đá c1hoặcDấu kèo bóng đá c1Đầu vào thực sự có hai biến thể: một biến thểkèo bóng đá c1 với múi giờhoặcdấu kèo bóng đá c1 với múi giờ, và một cái màkèo bóng đá c1 không có múi giờhoặcDấu kèo bóng đá c1 không có kèo bóng đá c1 vùng. Đố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,+*Các nhà khai thác đi vào các cặp giao hoán (ví dụ: cả hai kèo bóng đá c1 + số nguyên và số nguyên + kèo bóng đá c1); Chúng tôi chỉ hiển thị một trong số đó đôi.

Bảng 9-27. Toán tử kèo bóng đá c1/giờ

Nhà điều hành Ví dụ result
+ kèo bóng đá c1 '2001-09-28' + Integer '7' kèo bóng đá c1 '2001-10-05'
+ kèo bóng đá c1 '2001-09-28' + khoảng '1 1 giờ' Timestamp '2001-09-28 01:00:00'
+ kèo bóng đá c1 '2001-09-28' + thời gian '03: 00 ' Timestamp '2001-09-28 03:00:00'
+ Khoảng '1 kèo bóng đá c1' + Khoảng '1 giờ' Khoảng '1 kèo bóng đá c1 01:00:00'
+ Timestamp '2001-09-28 01:00' + Interval '23 giờ' Timestamp '2001-09-29 00:00:00'
+ kèo bóng đá c1 '01: 00 ' + Khoảng' 3 giờ ' kèo bóng đá c1 '04: 00: 00 '
- - khoảng '23 giờ ' Khoảng '-23: 00: 00'
- kèo bóng đá c1 '2001-10-01'-kèo bóng đá c1 '2001-09-28' Integer '3'(kèo bóng đá c1)
- kèo bóng đá c1 '2001-10-01'-Integer '7' kèo bóng đá c1 '2001-09-24'
- kèo bóng đá c1 '2001-09-28'-Khoảng '1 giờ' Timestamp '2001-09-27 23:00:00'
- kèo bóng đá c1 '05: 00 ' - kèo bóng đá c1 '03: 00' Interval '02: 00: 00 '
- kèo bóng đá c1 '05: 00 ' - Khoảng' 2 giờ ' kèo bóng đá c1 '03: 00: 00 '
- Timestamp '2001-09-28 23:00'-Khoảng kèo bóng đá c1 '23 giờ' Timestamp '2001-09-28 00:00:00'
- Khoảng '1 kèo bóng đá c1' - Khoảng '1 giờ' Khoảng '1 kèo bóng đá c1 -01: 00: 00'
- Timestamp '2001-09-29 03:00'-Dấu kèo bóng đá c1 '2001-09-27 12:00' Khoảng '1 kèo bóng đá c1 15:00:00'
* 900 * Khoảng '1 giây' Khoảng '00: 15: 00 '
* 21 * Khoảng '1 kèo bóng đá c1' Interval '21 Days '
* độ chính xác gấp đôi '3,5' * khoảng '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-28. Chức năng kèo bóng đá c1/giờ

function Return Type Mô tả Ví dụ Kết quả
Age (Dấu kèo bóng đá c1, Dấu kèo bóng đá c1) Khoảng 16697_16731"Biểu tượng"Kết quả sử dụng nhiều năm và tháng Age (Timestamp '2001-04-10', dấu kèo bóng đá c1 '1957-06-13') 43 năm 9 Mons 27 kèo bóng đá c1
Age (Dấu kèo bóng đá c1) Khoảng Trừ từcurrent_date(tại nửa đêm) Age (Timestamp '1957-06-13') 43 năm 8 Mons 3 kèo bóng đá c1
clock_timestamp () dấu kèo bóng đá c1 với múi giờ kèo bóng đá c1 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 đá c1 kèo bóng đá c1 hiện tại; nhìn thấyPhần 9.9.4
current_time kèo bóng đá c1 với múi giờ Thời gian hiện tại trong kèo bóng đá c1; nhìn thấyPhần 9.9.4
current_timestamp dấu kèo bóng đá c1 với múi giờ kèo bóng đá c1 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 đá c1) 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 đá c1 '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 đá c1) Dấu kèo bóng đá c1 Cắt ngắn để chính xác được chỉ định; Xem thêmPhần 9.9.2 date_trunc ('giờ', dấu kèo bóng đá c1 '2001-02-16 20:38:40 ') 2001-02-16 20:00:00
Trích xuất(trườngtừDấu kèo bóng đá c1) độ chính xác gấp đôi 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ừ20490_20500) 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 đá c1 '2 năm 3 tháng ') 3
isfinite (kèo bóng đá c1) Boolean Kiểm tra kèo bóng đá c1 hữu hạn (không phải +/- vô cực) 21012_21041 TRUE
isfinite (Dấu kèo bóng đá c1) Boolean Kiểm tra tem kèo bóng đá c1 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 đá c1 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 đá c1 được biểu diễn dưới dạng Tháng Justify_days (khoảng '35 kèo bóng đá c1 ') 1 Mon 5 kèo bóng đá c1
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 đá c1 Justify_Hours (khoảng '27 giờ') 1 kèo bóng đá c1 03:00:00
Justify_interval (Khoảng) Khoảng Điều chỉnh khoảng kèo bóng đá c1 sử dụngJustify_DaysJustify_Hours, với dấu hiệu bổ sung Điều chỉnh giờ') 29 kèo bóng đá c1 23:00:00
địa phương kèo bóng đá c1 Thời gian hiện tại trong kèo bóng đá c1; nhìn thấyPhần 9.9.4
LocalTimeStamp Dấu kèo bóng đá c1 kèo bóng đá c1 và giờ hiện tại (bắt đầu giao dịch hiện tại); nhìn thấyPhần 9.9.4
bây giờ () dấu kèo bóng đá c1 với múi giờ kèo bóng đá c1 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 đá c1 với múi giờ kèo bóng đá c1 và giờ hiện tại (bắt đầu tuyên bố hiện tại); nhìn thấyPhần 9.9.4
Timeofday () Text kèo bóng đá c1 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 đá c1 với múi giờ kèo bóng đá c1 và giờ hiện tại (bắt đầu giao dịch hiện tại); nhìn thấyPhần 9.9.4

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ặp kèo bóng đá c1, thời gian hoặc thời gian tem; hoặc như một kèo bóng đá c1, 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 đầu tiên;chồng chéo25678_25812Bắt đầu <= kèo bóng đá c1 < kết thúc, trừ khiBắt đầukết thúcbằng nhau trong trường hợp nó đại diện cho kèo bóng đá c1 đơn lẻ đó. Điều này có nghĩa là ví dụ rằng hai khoảng kèo bóng đá c1 chỉ có điểm cuối chung không trùng nhau.

Chọn (kèo bóng đá c1 '2001-02-16', kèo bóng đá c1 '2001-12-21')
       (kèo bóng đá c1 '2001-10-30', kèo bóng đá c1 '2002-10-30');Kết quả:true26434_26541Kết quả:SaiChọn (kèo bóng đá c1 '2001-10-29', kèo bóng đá c1 '2001-10-30')
       (kèo bóng đá c1 '2001-10-30', kèo bóng đá c1 '2001-10-31');Kết quả:26790_26797Chọn (kèo bóng đá c1 '2001-10-30', kèo bóng đá c1 '2001-10-30')
       (kèo bóng đá c1 '2001-10-30', kèo bóng đá c1 '2001-10-31');Kết quả:TRUE

Khi thêmKhoảng27039_27070Khoảng27098_27115dấu kèo bóng đá c1 với múi giờGiá trị, kèo bóng đá c1 các tiến bộ thành phần (hoặc giảm) kèo bóng đá c1 củadấu kèo bóng đá c1 với múi giờTheo số lượng được chỉ định của kèo bóng đá c1. Trong thời gian tiết kiệm ánh sáng ban kèo bóng đá c1 thay đổi (với thời gian phiên Vùng đượ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 đá c1'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ànhCST7CDT, dấu thời gian với múi giờ '2005-04-02 12: 00-07' + khoảng '1 kèo bóng đá c1'sẽ sản xuấtdấu kèo bóng đá c1 Với múi giờ '2005-04-03 12: 00-06', trong khi thêmKhoảng '24 giờ 'với cùng một ban đầudấu kèo bóng đá c1 với múi giờsản xuấtdấu kèo bóng đá c1 với múi giờ '2005-04-03 13: 00-06', như Có một sự thay đổi về thời gian tiết kiệm ánh sáng ban kèo bóng đá c1 tại2005-04-03 02:00Trong múi giờCST7CDT.

Lưu ý Có thể có sự mơ hồ trongthángĐược trả về bởiAgeVì các tháng khác nhau có số kèo bóng đá c1 khác nhau.PostgreSQLS tiếp cận sử dụng tháng kể từ trước đó của hai kèo bóng đá c1 khi tính toán một phần tháng. Ví dụ,tuổi ('2004-06-01', '2004-04-30')Sử dụng tháng 4 để mang lại1 Thứ Hai 1 kèo bóng đá c1, trong khi sử dụng có thể sẽ mang lại1 Thứ Hai 2 kèo bóng đá c1Vì có thể có 31 kèo bóng đá c1, trong khi tháng Tư chỉ có 30.

9.9.1.Trích xuất, date_part

Trích xuất (trườngtừNguồn)

TheTrích xuấtHàm lấy Các trường con như năm hoặc giờ kể từ kèo bóng đá c1/giá trị thời gian.Nguồnphải là biểu thức giá trị của loạiTimestamp, kèo bóng đá c1hoặcKhoảng. (Biểu thức của loạikèo bóng đá c1được đúc thànhDấu kèo bóng đá c1và do đó cũng có thể được sử dụng.)trườnglà một mã định danh hoặc chuỗi chọn Trường nào để trích xuất từ ​​giá trị nguồn. TheTrích xuấtHàm trả về các giá trị của loạiđộ chính xác gấp đôi. Những điều sau đây là hợp lệ Tên trường:

Century

29817_29830

Chọn trích xuất (thế kỷ từ dấu kèo bóng đá c1 '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ỷ đầu tiên 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.

PostgreSQL30521_30648

kèo bóng đá c1

choDấu kèo bóng đá c1Giá trị, kèo bóng đá c1 (của tháng) trường (1 - 31); vìKhoảngGiá trị, số kèo bóng đá c1

Chọn trích xuất (kèo bóng đá c1 từ Timestamp '2001-02-16 20:38:40');Kết quả:16Chọn trích xuất (kèo bóng đá c1 từ khoảng '40 kèo bóng đá c1 1 phút ');Kết quả:40
Decade

Trường năm chia cho 10

Chọn trích xuất (thập kỷ từ dấu kèo bóng đá c1 '2001-02-16 20:38:40');Kết quả:200
Dow

kèo bóng đá c1 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ấtkèo bóng đá c1 của Việc đánh số tuần khác vớito_char (..., 'd')chức năng.

doy

kèo bóng đá c1 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
Epoch

chodấu kèo bóng đá c1 với múi giờGiá trị, The số giây kể từ 1970-01-01 00:00:00 UTC (có thể là âm); vìkèo bóng đá c1TimestampGiá trị, số giây kể từ 1970-01-01 00:00:00 giờ địa phương; vìKhoảngGiá trị, tổng số của giây trong khoảng

Chọn trích xuất (kỷ nguyên từ dấu kèo bóng đá c1 với múi giờ '2001-02-16 20: 38: 40.12-08');Kết quả:982384720.12Chọn trích xuất (kỷ nguyên từ khoảng '5 kèo bóng đá c1 3 giờ');Kết quả:442800

Đây là cách bạn có thể chuyển đổi giá trị kỷ nguyên trở lại kèo bóng đá c1 con tem:

Chọn dấu kèo bóng đá c1 với múi giờ 'Epoch' + 982384720.12 * Interval '1 giây';

(Theto_timestampHàm Đóng gói chuyển đổi ở trên.)

giờ

Trường giờ (0 - 23)

Chọn Trích xuất (giờ từ Timestamp '2001-02-16 20:38:40');Kết quả:20
isodow

kèo bóng đá c1 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 đá c1 trong tuần.

ISOYEAR

TheISO8601 đánh số tuần Năm mà kèo bóng đá c1 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 đá c1 '2006-01-01');Kết quả:2005Chọn Trích xuất (Isoyear từ kèo bóng đá c1 '2006-01-02');Kết quả:2006

mỗiISO8601 đánh số tuần Năm bắt đầu với thứ Hai trong tuần có chứa thứ 4 Tháng một, vì vậy vào đầu tháng 1 hoặc cuối tháng 12ISONăm có thể khác với Gregorian năm. 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 khi 8.3.

MicroSeconds

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 (micro giây từ kèo bóng đá c1 '17: 12: 28.5 ');Kết quả:28500000
Thiên niên kỷ

Thiên niên kỷ

Chọn Trích xuất (Thiên niên kỷ từ Timestamp '2001-02-16 20:38:40');Kết quả:3

Năm trong những năm 1900 là trong thiên niên kỷ thứ hai. Thứ ba Thiên niên kỷ bắt đầu từ kèo bóng đá c1 1 tháng 1 năm 2001.

PostgreSQL35492_35620

Milliseconds

Trường thứ hai, bao gồm các bộ 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 (mili giây từ kèo bóng đá c1 '17: 12: 28.5 ');Kết quả:28500
phút

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
tháng

choDấu kèo bóng đá c1Giá trị, số lượng 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');Kết quả:1
quý

quý của năm (1 - 4) kèo bóng đá c1 đó là

Chọn trích xuất (quý từ Timestamp '2001-02-16 20:38:40');result:1
thứ hai

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 đá c1 '2001-02-16 20:38:40');Kết quả:40Chọn Trích xuất (thứ hai theo kèo bóng đá c1 '17: 12: 28.5 ');Kết quả:28.5
timezone

Múi giờ bù từ UTC, được đo bằng giây. Tích cực Các giá trị tương ứng với các múi giờ ở phía đông UTC, các giá trị âm với Khu vực phía tây UTC. (Về mặt kỹ thuật,POSTGRESQLsử dụngUT137954_37995

timezone_hour

38060_38104

timezone_minute

Thành phần phút của phần bù múi giờ

tuần

Số lượng củaISO8601 Tuần lễ số tuần trong năm. Theo định nghĩa, các tuần ISO bắt đầu Thứ Hai và tuần đầu tiên của một năm chứa kèo bóng đá c1 4 tháng 1 trong số đó 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 đó.

38551_387722005-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. 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
năm

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

TheTrích xuấtHàm chủ yếu dự định xử lý tính toán. Để định dạng kèo bóng đá c1/giờ Giá trị để hiển thị, xemPhần 9.8.

Thedate_partHà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. Trường hợp lệ Tên chodate_part40487_40510Trích xuất.

Chọn Date_Part ('kèo bóng đá c1', Timestamp '2001/02-16 20:38:40');result:16Chọn Date_Part ('Giờ', Khoảng '4 giờ 3 phút');Kết quả:4

9.9.2.date_trunc

hàmdate_truncIS về mặt khái niệm tương tự nhưTrunchàm cho số.

date_trunc ('trường',Nguồn)

Nguồnlà biểu thức giá trị của kiểuTimestamphoặcKhoảng. (Giá trị loạikèo bóng đá c1kèo bóng đá c1được đúc tự động đếnTimestamphoặcKhoảng,, tương ứng.)trườngChọn đến chính xác để cắt giảm giá trị đầu vào. Giá trị trả về là của kiểu41750_41761hoặcKhoảngVới tất cả các trường ít quan trọng hơn một bộ được chọn thành 0 (hoặc một, cho kèo bóng đá c1 và tháng).

Giá trị hợp lệ chotrườnglà:

Microseconds
Milliseconds
thứ hai
phút
giờ
kèo bóng đá c1
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:0042897_4296142985_429952001-01-01 00:00:00

9.9.3.Tại thời điểm VÙNG

TheTại múi giờChuyển đổi kèo bóng đá c1Không có múi giờđến/từ tem kèo bóng đá c1theo kèo bóng đá c1 vùngkèo bóng đá c1giá trị cho các múi giờ khác nhau.Bảng 9-29Hiển thị các biến thể của nó.

Bảng 9-29.Tại múi giờBiến thể

Biểu thức Return Type Mô tả
Dấu kèo bóng đá c1 không có kèo bóng đá c1 vùngTại múi giờvùng dấu kèo bóng đá c1 với múi giờ Điều trị tem kèo bóng đá c1Không có múi giờnhư nằm trong múi giờ được chỉ định
dấu kèo bóng đá c1 theo kèo bóng đá c1 vùngTại múi giờvùng dấu kèo bóng đá c1 không có múi giờ Chuyển đổi tem kèo bóng đá c1 đã chovới múi giờđến múi giờ mới, Không có chỉ định múi giờ
kèo bóng đá c1 với múi giờTại múi giờkhu vực kèo bóng đá c1 với múi giờ Chuyển đổi kèo bóng đá c1 đã chotheo kèo bóng đá c1 vùng44917_44940

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 đá c1 (ví dụ:Khoảng '-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 đá c1 '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 đá c1 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:4045855_45959Kế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 thay đổi kèo bóng đá c1 đóng dấu với giá trị múi giờ vào múi giờ được chỉ định và trả về giá trị không có múi giờ. Điều này cho phép lưu trữ và hiển thị giá trị khác với hiện tạitimezoneCài đặt. Ví dụ thứ ba chuyển đổi kèo bóng đá c1 Tokyo sang kèo bóng đá c1 ở Chicago. Chuyển đổikèo bóng đá c1Giá trị đến 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 kèo bóng đá c1 được cung cấp.

hàmtimezone(khu vực, 46806_46817)tương đương với Cấu trúc phù hợp SQLdấu kèo bóng đá c1Tại múi giờkhu vực.

9.9.4. kèo bóng đá c1/giờ hiện tại

POSTGRESQLcung cấp một số Các chức năng trả về các giá trị liên quan đến kèo bóng đá c1 và giờ hiện tại. Các hàm tiêu chuẩn SQL này đều có các giá trị trả về dựa trên sự khởi đầu thời gian của giao dịch hiện tại:

current_date
Current_time
Current_timestamp
Current_time (chính xác)
Current_timestamp (Precision)
Địa phương
LocalTimeStamp
Địa phương (Precision)
LocalTimeStamp (Chính xác)

current_timecurrent_timestampCung cấp các giá trị theo múi giờ;địa phươngLocalTimestampcung cấp các giá trị không có kèo bóng đá c1 vùng.

current_time, current_timestamp, địa phươngLocalTimeStampcó thể tùy ý lấy độ chính xác tham số, gây ra kết quả được làm tròn cho nhiều Các chữ số phân số trong trường giây. Không có độ chính xác tham số, kết quả được cung cấp 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 đá c1 bắt đầu của dòng điện Giao dịch, giá trị của họ 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 để có một khái niệm nhất quán về"Hiện tại"kèo bóng đá c1, để nhiều sửa đổi Trong cùng một giao dịch mang cùng thời điểm.

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 đá c1 bắt đầu của câu lệnh hiện tại, như cũng như kèo bóng đá c1 hiện tại thực tế tại thời điểm chức năng là gọi điện. Danh sách đầy đủ các chức năng kèo bóng đá c1 không tiêu chuẩn không SQL là:

Giao dịch_timestamp ()
statement_timestamp ()
clock_timestamp ()
Timeofday ()
Hiện nay()

Giao dịch_timestamp ()IS 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 đá c1 bắt đầu của tuyên bố hiện tại (cụ thể hơn là kèo bóng đá c1 nhận thông báo lệnh mới nhất từ ​​máy khách).statement_timestamp ()Giao dịch_timestamp ()Trả về cùng một giá trị trong lệnh đầu tiên của một giao dịch, nhưng có thể khác nhau trong các lệnh tiếp theo.clock_timestamp ()Trả về dòng điện thực tế kèo bóng đá c1 và do đó, giá trị của nó thay đổi ngay cả trong một SQL yêu cầu.timeofday ()là một lịch sửPostgreSQLHàm. Giốngclock_timestamp (), nó trả về kèo bóng đá c1 hiện tại thực tế, nhưng là một định dạngTextChuỗi thay vì Adấu kèo bóng đá c1 với múi giờGiá trị.now ()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 đá c1/giờ cũng chấp nhận theo nghĩa đen đặc biệt giá trịBây giờĐể chỉ định kèo bóng đá c1 hiện tại và thời gian (một lần nữa, được hiểu là thời gian bắt đầu giao dịch). Vì vậy, sau ba lần 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 đá c1 'bây giờ';  - Không chính xác để sử dụng với mặc định

Tip:Bạn không muốn sử dụng biểu mẫu thứ ba khi Chỉ định AMặc địnhmệnh đề trong khi tạo một cái bàn. Hệ thống sẽ chuyển đổiBây giờđến ATimestampNgay khi hằng số được phân tích cú pháp, Vì vậy, khi cần giá trị mặc định, kèo bóng đá c1 của bảng Sáng tạo sẽ được sử dụng! Hai hình thức đầ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 cho đến thời điểm của chèn hàng.

9.9.5. Trì hoãn thực thi

Hàm sau có sẵn để trì hoãn việc thực thi Quá trình máy chủ:

pg_s ngủ (giây)

pg_s ngủLàm cho dòng điện Quy trình của phiên ngủ cho đến khigiâygiây đã trôi qua.giâylà giá trị của loạiđộ chính xác gấp đôi, vì vậy sự chậm trễ thứ hai có thể chỉ định. Ví dụ:

Chọn PG_SLEEP (1.5);

Lưu ý:Độ phân giải hiệu quả của khoảng kèo bóng đá c1 ngủ là nền tảng cụ thể; 0,01 giây là một giá trị chung. Sự chậm 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 Trên các yếu tố như tải máy chủ.

cảnh báo

Đảm bảo rằng phiên của bạn không giữ nhiều khóa hơn cần thiết khi gọipg_s ngủ. Nếu không, các phiên khác có thể phải đợi bạn đang ngủ xử lý, làm chậm toàn bộ hệ thống.

Ghi chú

[1]

60 Nếu bước nhảy được thực hiện bởi hệ điều hành