PostgreSQLHỗ trợ toàn bộ bộSQLCác loại tỷ lệ kèo bóng đá tối nay và giờ, được hiển thị trongBảng 8.9. Các hoạt động có sẵn trên tỷ lệ kèo bóng đá tối nay dữ liệu này được mô tả trongPhần 9.9. tỷ lệ kèo bóng đá tối nay được tính theo lịch Gregorian, ngay cả trong nhiều năm trước lịch đó được giới thiệu (xemPhần B.6Để biết thêm thông tin).
Bảng 8.9. Các loại tỷ lệ kèo bóng đá tối nay/giờ
tên | Kích thước lưu trữ | Mô tả | giá trị thấp | Giá trị cao | Độ phân giải |
---|---|---|---|---|---|
dấu thời gian [( |
8 byte | cả tỷ lệ kèo bóng đá tối nay và giờ (không có múi giờ) | 4713 bc | 294276 AD | 1 microsecond |
dấu thời gian [( |
8 byte | cả tỷ lệ kèo bóng đá tối nay và giờ, với múi giờ | 4713 bc | 294276 AD | 1 microsecond |
tỷ lệ kèo bóng đá tối nay |
4 byte | tỷ lệ kèo bóng đá tối nay (không có thời gian trong tỷ lệ kèo bóng đá tối nay) | 4713 bc | 5874897 AD | 1 tỷ lệ kèo bóng đá tối nay |
Thời gian [( |
8 byte | Thời gian trong tỷ lệ kèo bóng đá tối nay (không có tỷ lệ kèo bóng đá tối nay) | 00:00:00 | 24:00:00 | 1 microsecond |
Thời gian [( |
12 byte | Thời gian trong tỷ lệ kèo bóng đá tối nay (không có tỷ lệ kèo bóng đá tối nay), với múi giờ | 00: 00: 00+1559 | 24:00:00-1559 | 1 microsecond |
Khoảng [ |
16 byte | Khoảng thời gian | -178000000 năm | 178000000 năm | 1 microsecond |
Tiêu chuẩn SQL yêu cầu viết chỉDấu thời gian
Hãy tương đương vớidấu thời gian không có múi giờ
vàPostgreSQLDanh dự hành vi đó.TIMESTAMPTZ
được chấp nhận làm chữ viết tắt chodấu thời gian với múi giờ
; Đây là mộtPostgreSQLphần mở rộng.
Thời gian
, Dấu thời gian
vàKhoảng
Chấp nhận giá trị chính xác tùy chọnP
trong đó chỉ định số lượng tỷ lệ kèo bóng đá tối nay chữ số phân số được giữ lại trong trường giây. Theo mặc định, không có ràng buộc rõ ràng về độ chính xác.P
là từ 0 đến 6.
TheKhoảng
Loại có một tùy chọn bổ sung, đó là hạn chế tập hợp tỷ lệ kèo bóng đá tối nay trường được lưu trữ bằng cách viết một trong những cụm từ này:
Năm
Lưu ý rằng nếu cả haiTrường
vàP
được chỉ định,trường
phải bao gồmthứ hai
, vì độ chính xác chỉ áp dụng cho tỷ lệ kèo bóng đá tối nay giây.
LoạiThời gian với múi giờ
được xác định bởi tiêu chuẩn SQL, nhưng định nghĩa thể hiện tỷ lệ kèo bóng đá tối nay thuộc tính dẫn đến tính hữu dụng đáng ngờ. Trong hầu hết tỷ lệ kèo bóng đá tối nay trường hợp, sự kết hợp củatỷ lệ kèo bóng đá tối nay
, Thời gian
, dấu thời gian không có múi giờ
vàdấu thời gian với múi giờ
Sẽ cung cấp một phạm vi đầy đủ về chức năng tỷ lệ kèo bóng đá tối nay/thời gian được yêu cầu bởi bất kỳ ứng dụng nào.
Đầu vào tỷ lệ kèo bóng đá tối nay và giờ được chấp nhận ở hầu hết mọi định dạng hợp lý, bao gồm ISO 8601,SQL-CompitiT, truyền thốngPostgres, và những người khác. Đối với một số định dạng, việc đặt hàng tỷ lệ kèo bóng đá tối nay, tháng và năm đầu vào tỷ lệ kèo bóng đá tối nay là mơ hồ và có sự hỗ trợ để chỉ định thứ tự dự kiến của các trường này.Datestyletham số đếnmdy
Để chọn diễn giải hàng tháng,DMY
để chọn diễn giải trong năm tháng, hoặcYMD
để chọn diễn giải một tháng năm.
PostgreSQLlinh hoạt hơn trong đầu vào tỷ lệ kèo bóng đá tối nay/thời gian xử lý so vớiSQLYêu cầu tiêu chuẩn. Nhìn thấyPhụ lục BĐối với các quy tắc phân tích chính xác của đầu vào tỷ lệ kèo bóng đá tối nay/thời gian và cho các trường văn bản được công nhận bao gồm tháng, tỷ lệ kèo bóng đá tối nay trong tuần và múi giờ.
Hãy nhớ rằng bất kỳ đầu vào tỷ lệ kèo bóng đá tối nay hoặc thời gian nào cũng cần được đặt trong các trích dẫn đơn, như chuỗi văn bản. Tham khảoPhần 4.1.2.7Để biết thêm thông tin.SQLYêu cầu cú pháp sau
loại
[(P
)] 'giá trị
'
WHEREP
là một đặc điểm kỹ thuật chính xác tùy chọn cung cấp số lượng chữ số phân số trong trường Seconds. Độ chính xác có thể được chỉ định choThời gian
, Dấu thời gian
vàKhoảng
tỷ lệ kèo bóng đá tối nay và có thể nằm trong khoảng từ 0 đến 6. Nếu không có độ chính xác nào được chỉ định trong một đặc điểm kỹ thuật không đổi, nó mặc định là độ chính xác của giá trị theo nghĩa đen (nhưng không quá 6 chữ số).
Bảng 8.10Hiển thị một số đầu vào có thể chotỷ lệ kèo bóng đá tối nay
Loại.
Bảng 8.10. Đầu vào tỷ lệ kèo bóng đá tối nay
Ví dụ | Mô tả |
---|---|
1999-01-08 | ISO 8601; tỷ lệ kèo bóng đá tối nay 8 tháng 1 ở bất kỳ chế độ nào (định dạng được đề xuất) |
tỷ lệ kèo bóng đá tối nay 8 tháng 1 năm 1999 | không rõ ràng trong bất kỳDatestyle Chế độ nhập |
1/8/1999 | tỷ lệ kèo bóng đá tối nay 8 tháng 1 trongmdy chế độ; tỷ lệ kèo bóng đá tối nay 1 tháng 8 trongDMY Mode |
1/18/1999 | 18 tháng 1 trongmdy chế độ; bị từ chối trong tỷ lệ kèo bóng đá tối nay chế độ khác |
01/02/03 | tỷ lệ kèo bóng đá tối nay 2 tháng 1 năm 2003 trongmdy chế độ; tỷ lệ kèo bóng đá tối nay 1 tháng 2 năm 2003 trongDMY chế độ; tỷ lệ kèo bóng đá tối nay 3 tháng 2 năm 2001 trongYMD Mode |
1999-JAN-08 | tỷ lệ kèo bóng đá tối nay 8 tháng 1 ở bất kỳ chế độ nào |
Jan-08-1999 | tỷ lệ kèo bóng đá tối nay 8 tháng 1 ở bất kỳ chế độ nào |
08-Jan-1999 | tỷ lệ kèo bóng đá tối nay 8 tháng 1 ở bất kỳ chế độ nào |
99-JAN-08 | tỷ lệ kèo bóng đá tối nay 8 tháng 1 trongYMD chế độ, lỗi khác |
08-JAN-99 | tỷ lệ kèo bóng đá tối nay 8 tháng 1, ngoại trừ lỗi trongYMD Mode |
Jan-08-99 | tỷ lệ kèo bóng đá tối nay 8 tháng 1, ngoại trừ lỗi trongYMD Mode |
19990108 | ISO 8601; tỷ lệ kèo bóng đá tối nay 8 tháng 1 năm 1999 ở bất kỳ chế độ nào |
990108 | ISO 8601; tỷ lệ kèo bóng đá tối nay 8 tháng 1 năm 1999 ở bất kỳ chế độ nào |
1999.008 | năm và tỷ lệ kèo bóng đá tối nay trong năm |
J2451187 | tỷ lệ kèo bóng đá tối nay Julian |
tỷ lệ kèo bóng đá tối nay 8 tháng 1, 99 trước Công nguyên | năm 99 trước Công nguyên |
Các loại thời gian của tỷ lệ kèo bóng đá tối nay làThời gian [(
vàP
)] Không có múi giờThời gian [(
. P
)] với múi giờThời gian
Một mình tương đương vớiThời gian không có múi giờ
.
Đầu vào hợp lệ cho các loại này bao gồm một thời gian trong tỷ lệ kèo bóng đá tối nay, sau đó là múi giờ tùy chọn. (Nhìn thấyBảng 8.11vàBảng 8.12.) Nếu múi giờ được chỉ định trong đầu vào choThời gian không có múi giờ
, nó bị bỏ qua âm thầm. Bạn cũng có thể chỉ định một tỷ lệ kèo bóng đá tối nay nhưng nó sẽ bị bỏ qua, ngoại trừ khi bạn sử dụng tên múi giờ liên quan đến quy tắc tiết kiệm ánh sáng ban tỷ lệ kèo bóng đá tối nay, chẳng hạn nhưAmerica/new_york
. Trong trường hợp này chỉ định tỷ lệ kèo bóng đá tối nay được yêu cầu để xác định xem thời gian tiết kiệm tiêu chuẩn hay ánh sáng ban tỷ lệ kèo bóng đá tối nay.Thời gian với múi giờ
Giá trị và là đầu ra như được lưu trữ; nó không được điều chỉnh theo múi giờ hoạt động.
Bảng 8.11. Đầu vào thời gian
Ví dụ | Mô tả |
---|---|
04:05:06.789 |
ISO 8601 |
04:05:06 |
ISO 8601 |
04:05 |
ISO 8601 |
040506 |
ISO 8601 |
04: 05 AM |
giống như 04:05; AM không ảnh hưởng đến giá trị |
04: 05 PM |
giống như 16:05; Giờ đầu vào phải là <= 12 |
04:05:06.789-8 |
ISO 8601, với múi giờ là UTC Offset |
04:05:06-08:00 |
ISO 8601, với múi giờ như OFC Offset |
04:05-08:00 |
ISO 8601, với múi giờ là UTC Offset |
040506-08 |
ISO 8601, với múi giờ là UTC Offset |
040506+0730 |
ISO 8601, với múi giờ giờ phân số là UTC Offset |
040506+07: 30: 00 |
OFC Offset được chỉ định thành giây (không được phép trong ISO 8601) |
04: 05: 06 PST |
Múi giờ được chỉ định bởi viết tắt |
2003-04-12 04:05:06 Mỹ/New_York |
Múi giờ được chỉ định bởi tên đầy đủ |
Bảng 8.12. Đầu vào múi giờ
Ví dụ | Mô tả |
---|---|
PST |
viết tắt (cho thời gian chuẩn Thái Bình Dương) |
America/new_york |
Tên múi giờ đầy đủ |
PST8PDT |
Đặc tả múi giờ kiểu POSIX |
-8:00:00 |
OTC Offset cho PST |
-8:00 |
OFC Offset cho PST (Định dạng mở rộng ISO 8601) |
-800 |
OFC Offset cho PST (Định dạng cơ bản ISO 8601) |
-8 |
OFC Offset cho PST (Định dạng cơ bản ISO 8601) |
Zulu |
Viết tắt quân sự cho UTC |
z |
dạng ngắn củaZulu (Cũng trong ISO 8601) |
Tham khảoPhần 8.5.3Để biết thêm thông tin về cách chỉ định tỷ lệ kèo bóng đá tối nay múi giờ.
Đầu vào hợp lệ cho các loại tem thời gian bao gồm sự kết hợp của một tỷ lệ kèo bóng đá tối nay và một thời gian, theo sau là múi giờ tùy chọn, theo sau là tùy chọnAD
hoặcBC
. (Cách khác,AD
/BC
Có thể xuất hiện trước múi giờ, nhưng đây không phải là thứ tự ưa thích.) Vì vậy:
1999-01-08 04:05:06
và:
1999-01-08 04:05:06 -8:00
là giá trị hợp lệ, theo dõiISO8601 tiêu chuẩn. Ngoài ra, định dạng phổ biến:
8 tháng 1 04:05:06 1999 PST
được hỗ trợ.
TheSQLkhác biệt tiêu chuẩndấu thời gian không có múi giờ
vàdấu thời gian với múi giờ
nghĩa đen bởi sự hiện diện của A+”hoặc-Biểu tượng và múi giờ bù sau thời gian. Do đó, theo tiêu chuẩn,
Timestamp '2004-10-19 10:23:54'
làdấu thời gian không có múi giờ
, trong khi
Timestamp '2004-10-19 10: 23: 54+02'
làdấu thời gian với múi giờ
. PostgreSQLKhông bao giờ kiểm tra nội dung của chuỗi theo nghĩa đen trước khi xác định loại của nó và do đó sẽ coi cả hai điều trên làdấu thời gian không có múi giờ
. Để đảm bảo rằng một nghĩa đen được coi làdấu thời gian với múi giờ
, cho nó loại rõ ràng chính xác:
dấu thời gian với múi giờ '2004-10-19 10: 23: 54+02'
Trong một giá trị đã được xác định làdấu thời gian không có múi giờ
, POSTGRESQLSẽ âm thầm bỏ qua bất kỳ dấu hiệu thời gian nào. Nghĩa là, giá trị kết quả được lấy từ các trường tỷ lệ kèo bóng đá tối nay/giờ trong chuỗi đầu vào và không được điều chỉnh cho múi giờ.
chodấu thời gian với múi giờ
Giá trị, một chuỗi đầu vào bao gồm múi giờ rõ ràng sẽ được chuyển đổi thành UTC (Thời gian phối hợp toàn cầu) Sử dụng phần bù thích hợp cho múi giờ đó. Nếu không có múi giờ được nêu trong chuỗi đầu vào, thì nó được cho là ở trong múi giờ được chỉ định bởi hệ thốngtimezoneTham số và được chuyển đổi thành UTC bằng cách sử dụng phần bù chotimezone
Vùng. Trong cả hai trường hợp, giá trị được lưu trữ bên trong dưới dạng UTC và múi giờ đã nêu hoặc giả định ban đầu không được giữ lại.
Khi Adấu thời gian với múi giờ
Giá trị là đầu ra, nó luôn được chuyển đổi từ UTC sang hiện tạitimezone
Vùng và được hiển thị dưới dạng thời gian địa phương trong khu vực đó. Để xem thời gian trong múi giờ khác, một trong hai thay đổitimezone
hoặc sử dụngTại múi giờ
Xây dựng (xemPhần 9.9.4).
Chuyển đổi giữadấu thời gian không có múi giờ
vàdấu thời gian với múi giờ
Thông thường giả sử rằngdấu thời gian không có múi giờ
Giá trị nên được lấy hoặc được đưa ra dưới dạngtimezone
giờ địa phương. Một múi giờ khác có thể được chỉ định để chuyển đổi bằng cách sử dụngTại múi giờ
.
POSTGRESQLHỗ trợ một số giá trị đầu vào tỷ lệ kèo bóng đá tối nay/thời gian đặc biệt để thuận tiện, như thể hiện trongBảng 8.13. tỷ lệ kèo bóng đá tối nay giá trịVô cực
và-Infinity
được thể hiện đặc biệt bên trong hệ thống và sẽ được hiển thị không thay đổi; Nhưng những người khác chỉ đơn giản là các khoản viết tắt của Notational sẽ được chuyển đổi thành giá trị tỷ lệ kèo bóng đá tối nay/thời gian thông thường khi đọc.Bây giờ
và tỷ lệ kèo bóng đá tối nay chuỗi liên quan được chuyển đổi thành giá trị thời gian cụ thể ngay khi chúng được đọc.) Tất cả tỷ lệ kèo bóng đá tối nay giá trị này cần được đặt trong tỷ lệ kèo bóng đá tối nay trích dẫn đơn khi được sử dụng làm hằng số trong tỷ lệ kèo bóng đá tối nay lệnh SQL.
Bảng 8.13. Đầu vào tỷ lệ kèo bóng đá tối nay/giờ đặc biệt
Chuỗi nhập | tỷ lệ kèo bóng đá tối nay hợp lệ | Mô tả |
---|---|---|
Epoch |
tỷ lệ kèo bóng đá tối nay , Timestamp |
1970-01-01 00: 00: 00+00 (Thời gian hệ thống UNIX 0) |
Vô cực |
tỷ lệ kèo bóng đá tối nay , Timestamp , Khoảng |
muộn hơn tất cả tỷ lệ kèo bóng đá tối nay tem thời gian khác |
-Infinity |
tỷ lệ kèo bóng đá tối nay , Timestamp , Khoảng |
sớm hơn tất cả tỷ lệ kèo bóng đá tối nay tem thời gian khác |
Bây giờ |
tỷ lệ kèo bóng đá tối nay , thời gian , Dấu thời gian |
Thời gian bắt đầu giao dịch hiện tại |
hôm nay |
tỷ lệ kèo bóng đá tối nay , Timestamp |
Midnight (00:00 ) Hôm nay |
tỷ lệ kèo bóng đá tối nay mai |
tỷ lệ kèo bóng đá tối nay , Timestamp |
Midnight (00:00 ) tỷ lệ kèo bóng đá tối nay mai |
tỷ lệ kèo bóng đá tối nay hôm qua |
tỷ lệ kèo bóng đá tối nay , Timestamp |
Midnight (00:00 ) Hôm qua |
Allballs |
Thời gian |
00: 00: 00.00 UTC |
sauSQL-tỷ lệ kèo bóng đá tối nay hàm tương thích cũng có thể được sử dụng để có được giá trị thời gian hiện tại cho loại dữ liệu tương ứng:current_date
, current_time
, current_timestamp
, địa phương
, LocalTimeStamp
. (Nhìn thấyPhần 9.9.5.) Lưu ý rằng đây là tỷ lệ kèo bóng đá tối nay chức năng SQL và làkhôngđược nhận dạng trong chuỗi đầu vào dữ liệu.
Trong khi tỷ lệ kèo bóng đá tối nay chuỗi đầu vàoBây giờ
, hôm nay
, tỷ lệ kèo bóng đá tối nay mai
vàtỷ lệ kèo bóng đá tối nay hôm qua
Được sử dụng trong tỷ lệ kèo bóng đá tối nay lệnh SQL tương tác, chúng có thể có hành vi đáng ngạc nhiên khi lệnh được lưu để được thực thi sau, ví dụ như trong tỷ lệ kèo bóng đá tối nay câu lệnh, quan điểm và định nghĩa chức năng đã chuẩn bị. Chuỗi có thể được chuyển đổi thành một giá trị thời gian cụ thể tiếp tục được sử dụng lâu sau khi nó trở nên cũ kỹ.current_date + 1
an toàn hơn'tỷ lệ kèo bóng đá tối nay mai' :: tỷ lệ kèo bóng đá tối nay
.
Định dạng đầu ra của các loại tỷ lệ kèo bóng đá tối nay/thời gian có thể được đặt thành một trong bốn kiểu ISO 8601,SQL(ingres), truyền thốngPostgres(UNIXtỷ lệ kèo bóng đá tối nayĐịnh dạng) hoặc tiếng Đức. Mặc định làISOĐịnh dạng. (TheSQLTiêu chuẩn yêu cầu sử dụng định dạng ISO 8601. Tên củaSQLĐịnh dạng đầu ra là một tai nạn lịch sử.)Bảng 8.14Hiển thị tỷ lệ kèo bóng đá tối nay ví dụ về từng kiểu đầu ra. Đầu ra củatỷ lệ kèo bóng đá tối nay
vàthời gian
Các loại thường chỉ là tỷ lệ kèo bóng đá tối nay hoặc phần thời gian theo các ví dụ đã cho. Tuy nhiên,PostgresKiểu đầu ra các giá trị chỉ tỷ lệ kèo bóng đá tối nay trongISOĐịnh dạng.
Bảng 8.14. Kiểu đầu ra tỷ lệ kèo bóng đá tối nay/thời gian
Đặc tả kiểu | Mô tả | Ví dụ |
---|---|---|
ISO |
ISO 8601, tiêu chuẩn SQL | 1997-12-17 07:37:16-08 |
SQL |
Phong cách truyền thống | 12/17/1997 07: 37: 16.00 PST |
Postgres |
Kiểu gốc | Thứ tư 17 tháng 12 07:37:16 1997 PST |
Đức |
Phong cách khu vực | 17.12.1997 07: 37: 16.00 PST |
ISO 8601 Chỉ định việc sử dụng chữ hoaT
Để tách tỷ lệ kèo bóng đá tối nay và giờ.POSTGRESQLChấp nhận định dạng đó trên đầu vào, nhưng trên đầu ra, nó sử dụng một không gian chứ không phảiT
, như được hiển thị ở trên. Điều này là cho khả năng đọc và cho tính nhất quán vớiRFC 3339cũng như một số hệ thống cơ sở dữ liệu khác.
trongSQLvà các kiểu Postgres, tỷ lệ kèo bóng đá tối nay xuất hiện trước tháng nếu đặt hàng trường DMY đã được chỉ định, nếu không, tháng xuất hiện trước tỷ lệ kèo bóng đá tối nay. (Nhìn thấyPhần 8.5.1Để biết cách cài đặt này cũng ảnh hưởng đến việc giải thích tỷ lệ kèo bóng đá tối nay giá trị đầu vào.)Bảng 8.15Hiển thị tỷ lệ kèo bóng đá tối nay ví dụ.
Bảng 8.15. tỷ lệ kèo bóng đá tối nay đặt hàng quy ước
Datestyle Cài đặt |
Đặt hàng đầu vào | đầu ra ví dụ |
---|---|---|
SQL, DMY |
tỷ lệ kèo bóng đá tối nay /tháng /năm |
17/12/1997 15: 37: 16.00 CET |
SQL, MDY |
tháng /tỷ lệ kèo bóng đá tối nay /năm |
12/17/1997 07: 37: 16.00 PST |
Postgres, DMY |
tỷ lệ kèo bóng đá tối nay /tháng /năm |
Thứ tư 17 tháng 12 07:37:16 1997 PST |
TrongISOPhong cách, múi giờ luôn được hiển thị dưới dạng bù số có chữ ký từ UTC, với dấu hiệu tích cực được sử dụng cho tỷ lệ kèo bóng đá tối nay khu vực phía đông Greenwich. Phần bù sẽ được hiển thị dưới dạngHH
(Chỉ giờ) Nếu đó là số giờ không thể thiếu, khác làHH
:mm
Nếu đó là số phút không thể thiếu, khác làHH
:mm
:SS
. .HH
hoặcHHMM
). tỷ lệ kèo bóng đá tối nay chữ viết tắt chữ cái được hiển thị trong tỷ lệ kèo bóng đá tối nay kiểu này được lấy từ mục nhập cơ sở dữ liệu múi giờ IANA hiện đang được chọn bởitimezoneTham số thời gian chạy; Họ không bị ảnh hưởng bởitimezone_abbreviationCài đặt.
Kiểu tỷ lệ kèo bóng đá tối nay/giờ có thể được chọn bởi người dùng bằng cách sử dụngĐặt Datestyle
tỷ lệ kèo bóng đá tối naynh, TheDatestyletham số trongPostgreSql.conf
Tệp cấu hình hoặcPGDatestyle
Biến môi trường trên máy chủ hoặc máy khách.
Hàm định dạngto_char
(xemPhần 9.8) cũng có sẵn như một cách linh hoạt hơn để định dạng tỷ lệ kèo bóng đá tối nay/thời gian đầu ra.
Múi giờ và các quy ước khu vực thời gian, bị ảnh hưởng bởi các quyết định chính trị, không chỉ là hình học trái đất. Các múi giờ trên khắp thế giới đã trở nên hơi tiêu chuẩn hóa trong những năm 1900, nhưng tiếp tục dễ bị thay đổi tùy ý, đặc biệt là liên quan đến các quy tắc tiết kiệm ánh sáng ban tỷ lệ kèo bóng đá tối nay.PostgreSQLSử dụng cơ sở dữ liệu múi giờ IANA (Olson) được sử dụng rộng rãi để biết thông tin về tỷ lệ kèo bóng đá tối nay quy tắc múi giờ lịch sử. Đối với những thời điểm trong tương lai, giả định là tỷ lệ kèo bóng đá tối nay quy tắc mới nhất được biết đến trong một múi giờ nhất định sẽ tiếp tục được quan sát vô thời hạn trong tương lai.
PostgreSQLnỗ lực tương thích vớiSQLĐịnh nghĩa tiêu chuẩn cho việc sử dụng điển hình. Tuy nhiên,SQLTiêu chuẩn có sự kết hợp kỳ lạ của các loại tỷ lệ kèo bóng đá tối nay và thời gian và khả năng. Hai vấn đề rõ ràng là:
mặc dùtỷ lệ kèo bóng đá tối nay
Loại không thể có múi giờ liên kết,thời gian
Loại có thể. Các múi giờ trong thế giới thực có ít ý nghĩa trừ khi liên quan đến tỷ lệ kèo bóng đá tối nay cũng như thời gian, vì phần bù có thể thay đổi trong năm với ranh giới thời gian tiết kiệm ánh sáng ban tỷ lệ kèo bóng đá tối nay.
Múi thời gian mặc định được chỉ định là bù số không đổi từUTC. Do đó không thể thích nghi với thời gian tiết kiệm ánh sáng ban tỷ lệ kèo bóng đá tối nay khi thực hiện số học tỷ lệ kèo bóng đá tối nay/giờ quaDSTranh giới.
Để giải quyết những khó khăn này, chúng tôi khuyên bạn nên sử dụng các loại tỷ lệ kèo bóng đá tối nay/thời gian có chứa cả tỷ lệ kèo bóng đá tối nay và giờ khi sử dụng múi giờ. Chúng tôi làmkhôngĐề nghị sử dụng loạiThời gian với múi giờ
(mặc dù nó được hỗ trợ bởiPostgreSQLĐối với tỷ lệ kèo bóng đá tối nay ứng dụng kế thừa và để tuân thủSQLtiêu chuẩn).PostgreSQLGiả sử múi giờ địa phương của bạn cho bất kỳ loại nào chỉ chứa tỷ lệ kèo bóng đá tối nay hoặc thời gian.
Tất cả các tỷ lệ kèo bóng đá tối nay và thời gian nhận biết múi giờ được lưu trữ nội bộ trongUTC. Chúng được chuyển đổi thành giờ địa phương trong khu vực được chỉ định bởitimezoneTham số cấu hình trước khi được hiển thị cho máy khách.
PostgreSQLCho phép bạn chỉ định tỷ lệ kèo bóng đá tối nay múi giờ ở ba dạng khác nhau:
Ví dụ, một tên múi giờ đầy đủAmerica/New_York
. Tên múi giờ được công nhận được liệt kê trongpg_timezone_names
Xem (xemPhần 53.34).PostgreSQLSử dụng dữ liệu múi giờ IANA được sử dụng rộng rãi cho mục đích này, do đó, cùng tên múi giờ cũng được công nhận bởi phần mềm khác.
Ví dụ viết tắt múi giờPST
. Một đặc điểm kỹ thuật như vậy chỉ xác định một phần bù cụ thể từ UTC, trái ngược với các tên múi giờ đầy đủ có thể ngụ ý một tập hợp các quy tắc chuyển tiếp tiết kiệm ánh sáng ban tỷ lệ kèo bóng đá tối nay.pg_timezone_abbrevs
Xem (xemPhần 53.33). Bạn không thể đặt tham số cấu hìnhtimezonehoặclog_timezoneViết tắt múi giờ, nhưng bạn có thể sử dụng chữ viết tắt trong các giá trị đầu vào tỷ lệ kèo bóng đá tối nay/thời gian và vớiTại múi giờ
toán tử.
Ngoài tên và chữ viết tắt của múi giờ,PostgreSQLsẽ chấp nhận thông số kỹ thuật múi giờ kiểu POSIX, như được mô tả trongPhần B.5. Tùy chọn này thường không thích hợp hơn khi sử dụng múi giờ được đặt tên, nhưng có thể cần thiết nếu không có mục nhập múi giờ IANA phù hợp.
Tóm lại, đây là sự khác biệt giữa viết tắt và tên đầy đủ: chữ viết tắt thể hiện một phần bù cụ thể từ UTC, trong khi nhiều tên đầy đủ ngụ ý quy tắc thời gian tiết kiệm ánh sáng ban tỷ lệ kèo bóng đá tối nay địa phương, và do đó có hai lần bù UTC có thể. Ví dụ,2014-06-04 12:00 Mỹ/New_York
Đại diện cho buổi trưa giờ địa phương ở New York, trong tỷ lệ kèo bóng đá tối nay cụ thể này là thời gian ban tỷ lệ kèo bóng đá tối nay phía đông (UTC-4). Vì thế2014-06-04 12:00 EDT
Chỉ định cùng thời điểm đó. Nhưng2014-06-04 12:00 EST
Chỉ định Giờ chuẩn phương Đông (UTC-5), bất kể tiết kiệm ánh sáng ban tỷ lệ kèo bóng đá tối nay có hiệu quả vào tỷ lệ kèo bóng đá tối nay đó không.
Thông số kỹ thuật múi giờ theo kiểu POSIX có nghĩa ngược lại của tỷ lệ kèo bóng đá tối nay giá trị DateTime ISO-8601. Ví dụ: múi giờ POSIX cho2014-06-04 12: 00+04
sẽ là UTC-4.
Để làm phức tạp tỷ lệ kèo bóng đá tối nay vấn đề, một số khu vực pháp lý đã sử dụng cùng một chữ viết tắt thời gian để có nghĩa là tỷ lệ kèo bóng đá tối nay phạm vi khác nhau của UTC tại tỷ lệ kèo bóng đá tối nay thời điểm khác nhau; Ví dụ, trong MoscowMSK
có nghĩa là UTC+3 trong một số năm và UTC+4 ở những người khác.POSTGRESQLdiễn giải các chữ viết tắt đó theo bất cứ điều gì chúng có nghĩa (hoặc có nghĩa là gần đây nhất) vào tỷ lệ kèo bóng đá tối nay được chỉ định; Nhưng, như vớiest
Ví dụ ở trên, điều này không nhất thiết giống như thời gian dân sự địa phương vào tỷ lệ kèo bóng đá tối nay đó.
Trong tất cả tỷ lệ kèo bóng đá tối nay trường hợp, tên và chữ viết tắt được công nhận không nhạy cảm với trường hợp. (Đây là một sự thay đổi từPOSTGRESQLPhiên bản trước 8.2, nhạy cảm với trường hợp trong một số bối cảnh nhưng không phải khác.)
Không tên TimeZone cũng như chữ viết tắt đều khó có dây vào máy chủ; Chúng được lấy từ tỷ lệ kèo bóng đá tối nay tệp cấu hình được lưu trữ trong.../chia sẻ/timezone/
và.../chia sẻ/TimeZonesets/
của thư mục cài đặt (xemPhần B.4).
ThetimezoneTham số cấu hình có thể được đặt trong tệpPostgreSql.conf
hoặc theo bất kỳ cách tiêu chuẩn nào khác được mô tả trongChương 19. Ngoài ra còn có một số cách đặc biệt để đặt nó:
TheSQLtỷ lệ kèo bóng đá tối naynhĐặt múi giờ
Đặt múi giờ cho phiên. Đây là một cách đánh vần thay thế củaĐặt thời gian thành
với cú pháp tương thích SQL-spec hơn.
ThePGTZ
Biến môi trường được sử dụng bởilibpqKhách hàng gửiĐặt múi giờ
tỷ lệ kèo bóng đá tối naynh đến máy chủ khi kết nối.
Khoảng
Giá trị có thể được viết bằng cú pháp Verbose sau:
[@]Số lượng
Đơn vị
[Số lượng
Đơn vị
...] [Hướng
]
WHERESố lượng
là một số (có thể đã ký);Đơn vị
làmicrosecond
, Millisecond
, thứ hai
, phút
, giờ
, tỷ lệ kèo bóng đá tối nay
, tuần
, tháng
, năm
, Decade
, Century
, Thiên niên kỷ
hoặc viết tắt hoặc số nhiều của tỷ lệ kèo bóng đá tối nay đơn vị này;Hướng
có thểAGO
hoặc trống. Dấu hiệu tại (@
) là tiếng ồn tùy chọn. Số lượng của tỷ lệ kèo bóng đá tối nay đơn vị khác nhau được thêm vào với kế toán dấu hiệu phù hợp.AGO
phủ nhận tất cả tỷ lệ kèo bóng đá tối nay trường. Cú pháp này cũng được sử dụng cho đầu ra khoảng, nếuIntervalStyleđược đặt thànhPOSTGRES_VERBOSE
.
Số lượng tỷ lệ kèo bóng đá tối nay, giờ, phút và giây có thể được chỉ định mà không cần dấu hiệu đơn vị rõ ràng. Ví dụ,'1 12:59:10'
được đọc giống như'1 tỷ lệ kèo bóng đá tối nay 12 giờ 59 phút 10 giây'
. Ngoài ra, sự kết hợp giữa năm và tháng có thể được chỉ định với một dấu gạch ngang;'200-10'
được đọc giống như'200 năm 10 tháng'
. (Trên thực tế, tỷ lệ kèo bóng đá tối nay hình thức ngắn hơn là tỷ lệ kèo bóng đá tối nay hình thức duy nhất được cho phép bởiSQLTiêu chuẩn và được sử dụng cho đầu ra khiIntervalStyle
được đặt thànhSQL_STANDARD
.)
tỷ lệ kèo bóng đá tối nay giá trị khoảng thời gian cũng có thể được viết dưới dạng khoảng thời gian ISO 8601, sử dụngMạnhĐịnh dạng với người thiết kếcủa tiêu chuẩn Phần 4.4.3.2 hoặcĐịnh dạng thay thếcủa phần 4.4.3.3. Định dạng với người chỉ định trông như thế này:
PSố lượng
Đơn vị
[Số lượng
Đơn vị
...] [T [Số lượng
Đơn vị
...]]
Chuỗi phải bắt đầu bằngP
và có thể bao gồm mộtT
giới thiệu các đơn vị thời gian trong tỷ lệ kèo bóng đá tối nay. Các chữ viết tắt đơn vị có sẵn được đưa ra trongBảng 8.16. Các đơn vị có thể bị bỏ qua và có thể được chỉ định theo bất kỳ thứ tự nào, nhưng các đơn vị nhỏ hơn một tỷ lệ kèo bóng đá tối nay phải xuất hiện sauT
. Cụ thể, ý nghĩa củaM
Phụ thuộc vào việc nó là trước hay sauT
.
Bảng 8.16. Iso 8601 chữ viết tắt đơn vị khoảng
viết tắt | có nghĩa là |
---|---|
Y | năm |
M | tháng (trong phần tỷ lệ kèo bóng đá tối nay) |
W | tuần |
D | tỷ lệ kèo bóng đá tối nay |
H | giờ |
M | phút (trong phần thời gian) |
S | giây |
ở định dạng thay thế:
P [năm
-tháng
-tỷ lệ kèo bóng đá tối nay
] [Tgiờ
:phút
:giây
]
Chuỗi phải bắt đầu bằngP
và AT
tách các phần tỷ lệ kèo bóng đá tối nay và thời gian của khoảng thời gian. Các giá trị được đưa ra dưới dạng số tương tự như tỷ lệ kèo bóng đá tối nay ISO 8601.
Khi viết hằng số khoảng bằngTrường
Đặc điểm kỹ thuật hoặc khi gán một chuỗi cho một cột khoảng được xác định với ATrường
Đặc điểm kỹ thuật, việc giải thích tỷ lệ kèo bóng đá tối nay đại lượng không được đánh dấu phụ thuộc vàoTrường
. Ví dụKhoảng '1' năm
được đọc là 1 năm, trong khiKhoảng '1'
Có nghĩa là 1 giây. Ngoài ra, tỷ lệ kèo bóng đá tối nay giá trị trườngsang phảicủa trường ít có ý nghĩa nhất được phép bởiTrường
Đặc điểm kỹ thuật bị loại bỏ âm thầm. Ví dụ: ViếtKhoảng '1 tỷ lệ kèo bóng đá tối nay 2:03:04' Giờ đến phút
dẫn đến việc bỏ trường giây, nhưng không phải trường tỷ lệ kèo bóng đá tối nay.
theoSQLTiêu chuẩn Tất cả tỷ lệ kèo bóng đá tối nay trường của giá trị khoảng phải có cùng một dấu, do đó một dấu hiệu tiêu cực hàng đầu áp dụng cho tất cả tỷ lệ kèo bóng đá tối nay trường; Ví dụ: dấu âm trong khoảng thời gian'-1 2:03:04'
Áp dụng cho cả hai tỷ lệ kèo bóng đá tối nay và giờ/phút/phần thứ hai.PostgreSQLCho phép tỷ lệ kèo bóng đá tối nay trường có tỷ lệ kèo bóng đá tối nay dấu hiệu khác nhau và theo truyền thống đối xử với từng trường trong biểu diễn văn bản là ký tên độc lập, do đó phần/phút/phút thứ hai được coi là dương trong ví dụ này. Nếu nhưIntervalStyle
được đặt thànhSQL_STANDARD
Sau đó, một dấu hiệu hàng đầu được coi là áp dụng cho tất cả tỷ lệ kèo bóng đá tối nay trường (nhưng chỉ khi không có dấu hiệu bổ sung nào xuất hiện). Nếu không thì truyền thốngPostgreSQLGiải thích được sử dụng. Để tránh sự mơ hồ, nên đính kèm một dấu rõ ràng vào từng trường nếu bất kỳ trường nào là âm.
nội bộ,Khoảng
Giá trị được lưu trữ dưới dạng ba trường tích phân: tháng, tỷ lệ kèo bóng đá tối nay và micro giây. Các trường này được giữ riêng vì số tỷ lệ kèo bóng đá tối nay trong một tháng thay đổi, trong khi một tỷ lệ kèo bóng đá tối nay có thể có 23 hoặc 25 giờ nếu có liên quan đến thời gian tiết kiệm ánh sáng ban tỷ lệ kèo bóng đá tối nay.
Chọn '2 năm 15 tháng 100 tuần 99 giờ 123456789 mili giây' :: khoảng thời gian;
Ở đây tuần, được hiểu là7 tỷ lệ kèo bóng đá tối nay”, đã được giữ riêng biệt, trong khi tỷ lệ kèo bóng đá tối nay đơn vị thời gian nhỏ hơn và lớn hơn được kết hợp và chuẩn hóa.
Giá trị trường đầu vào có thể có tỷ lệ kèo bóng đá tối nay phần phân số, ví dụ'1,5 tuần'
hoặc'01: 02: 03,45 '
. Tuy nhiên, vìKhoảng
Chỉ lưu trữ tỷ lệ kèo bóng đá tối nay trường tích phân, giá trị phân số phải được chuyển đổi thành tỷ lệ kèo bóng đá tối nay đơn vị nhỏ hơn. tỷ lệ kèo bóng đá tối nay phần phân số của tỷ lệ kèo bóng đá tối nay đơn vị lớn hơn tháng được làm tròn là một số nguyên của tháng, ví dụ:'1,5 năm'
trở thành'1 năm 6 Mons'
. Các phần phân số của tuần và tỷ lệ kèo bóng đá tối nay được tính toán là một số nguyên của tỷ lệ kèo bóng đá tối nay và micro giây, giả sử 30 tỷ lệ kèo bóng đá tối nay mỗi tháng và 24 giờ mỗi tỷ lệ kèo bóng đá tối nay, ví dụ:'1,75 tháng'
trở thành1 Mon 22 tỷ lệ kèo bóng đá tối nay 12:00:00
. Chỉ vài giây sẽ được hiển thị dưới dạng phân đoạn trên đầu ra.
Bảng 8.17Hiển thị một số ví dụ về hợp lệKhoảng
Đầu vào.
Bảng 8.17. Đầu vào khoảng
Ví dụ | Mô tả |
---|---|
1-2 |
Định dạng tiêu chuẩn SQL: 1 năm 2 tháng |
3 4:05:06 |
Định dạng tiêu chuẩn SQL: 3 tỷ lệ kèo bóng đá tối nay 4 giờ 5 phút 6 giây |
1 năm 2 tháng 3 tỷ lệ kèo bóng đá tối nay 4 giờ 5 phút 6 giây |
Định dạng Postgres truyền thống: 1 năm 2 tháng 3 tỷ lệ kèo bóng đá tối nay 4 giờ 5 phút 6 giây |
P1Y2M3DT4H5M6S |
ISO 8601Định dạng với người thiết kế: Ý nghĩa tương tự như trên |
P0001-02-03T04: 05: 06 |
ISO 8601Định dạng thay thế”: Ý nghĩa tương tự như trên |
Như đã giải thích trước đây,PostgreSQLCửa hàngKhoảng
Giá trị là tháng, tỷ lệ kèo bóng đá tối nay và micro giây. Đối với đầu ra, trường tháng được chuyển đổi thành năm và tháng bằng cách chia cho 12. Trường tỷ lệ kèo bóng đá tối nay được hiển thị như-IS.Justify_Days
vàJustify_Hours
Có thể sử dụng các chức năng nếu mong muốn chuyển các giá trị tỷ lệ kèo bóng đá tối nay hoặc giờ lớn vào trường cao hơn tiếp theo.)
Định dạng đầu ra của loại khoảng thời gian có thể được đặt thành một trong bốn kiểuSQL_STANDARD
, Postgres
, Postgres_verbose
hoặcISO_8601
, Sử dụng tỷ lệ kèo bóng đá tối naynhĐặt khoảng thời gian
. Mặc định làPostgres
Định dạng.Bảng 8.18Hiển thị tỷ lệ kèo bóng đá tối nay ví dụ về từng kiểu đầu ra.
TheSQL_STANDARD
Phong cách tạo ra đầu ra phù hợp với đặc tả tiêu chuẩn của SQL cho các chuỗi theo nghĩa đen, nếu giá trị khoảng đáp ứng các hạn chế của tiêu chuẩn (chỉ một tháng hoặc chỉ trong thời gian ban tỷ lệ kèo bóng đá tối nay, không chỉ trộn các thành phần tích cực và tiêu cực). Mặt khác, đầu ra trông giống như một chuỗi theo nghĩa đen trong tháng tiêu chuẩn, sau đó là một chuỗi theo nghĩa đen ban tỷ lệ kèo bóng đá tối nay, với các dấu hiệu rõ ràng được thêm vào để phân loại các khoảng thời gian ký tên hỗn hợp.
Đầu ra củaPostgres
Kiểu khớp với đầu ra củaPOSTGRESQLphát hành trước 8.4 khiDatestyletham số được đặt thànhISO
.
Đầu ra củapostgres_verbose
Kiểu khớp với đầu ra củaPostgreSQLphát hành trước 8.4 khiDatestyle
tham số được đặt thành khôngISO
OUTPUT.
Đầu ra củaISO_8601
Kiểu khớp vớiĐịnh dạng với người thiết kếĐược mô tả trong phần 4.4.3.2 của tiêu chuẩn ISO 8601.
Bảng 8.18. Ví dụ kiểu đầu ra khoảng thời gian
Đặc tả kiểu | Khoảng thời gian năm | Khoảng thời gian ban tỷ lệ kèo bóng đá tối nay | Khoảng thời gian hỗn hợp |
---|---|---|---|
SQL_STANDARD |
1-2 | 3 4:05:06 | -1-2 +3 -4: 05: 06 |
Postgres |
1 năm 2 Mons | 3 tỷ lệ kèo bóng đá tối nay 04:05:06 | -1 năm -2 MONS +3 tỷ lệ kèo bóng đá tối nay -04: 05: 06 |
Postgres_verbose |
@ 1 năm 2 Mons | @ 3 tỷ lệ kèo bóng đá tối nay 4 giờ 5 phút 6 giây | @ 1 năm 2 Mons -3 tỷ lệ kèo bóng đá tối nay 4 giờ 5 phút 6 giây trước |
ISO_8601 |
P1Y2M | P3DT4H5M6S | P-1Y-2M3D T-4H-5M-6S |