Khi làm việc với khoảng thời gian kiểu dữ liệu trong PostgreSQL, bạn có thể thay đổi cách định dạng đầu ra khoảng thời gian.
Bạn có thể lựa chọn bốn định dạng mà các khoảng thời gian của bạn có thể được xuất ra.
Định dạng đầu ra của loại khoảng thời gian có thể được đặt thành một trong các kiểu sau:
-
sql_standard
-
postgres
-
postgres_verbose
-
iso_8601
Kiểu mặc định là postgres
.
Để thay đổi định dạng khoảng của bạn, hãy sử dụng SET intervalstyle
yêu cầu.
Ví dụ
Các ví dụ sau minh họa đầu ra của make_interval()
khi sử dụng các kiểu đầu ra khác nhau.
sql_standard
Kiểu này tuân theo đặc điểm kỹ thuật của tiêu chuẩn SQL cho chuỗi ký tự khoảng thời gian, nếu giá trị khoảng thời gian đáp ứng các giới hạn của tiêu chuẩn (chỉ năm-tháng hoặc chỉ ngày-giờ, không có sự trộn lẫn của các thành phần tích cực và tiêu cực).
Nếu không, đầu ra trông giống như một chuỗi ký tự năm-tháng tiêu chuẩn, theo sau là một chuỗi ký tự ngày-giờ, với các dấu hiệu rõ ràng được thêm vào để phân biệt các khoảng dấu hiệu hỗn hợp.
Dưới đây là một ví dụ sử dụng năm-tháng.
SET intervalstyle = 'sql_standard';
SELECT make_interval(years => 1, months => 2);
Kết quả:
1-2
Dưới đây là một ví dụ khác. Lần này tôi chỉ định năm, tháng, tuần, ngày, giờ, phút và giây.
SET intervalstyle = 'sql_standard';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Kết quả:
+1-2 +25 +5:06:07
postgres
postgress
là cài đặt mặc định.
Kiểu này khớp với đầu ra của các bản phát hành Postgres trước ngày 8.4 khi DateStyle
tham số đã được đặt thành ISO
.
SET intervalstyle = 'postgres';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Kết quả:
1 year 2 mons 25 days 05:06:07
postgres_verbose
Kiểu này khớp với đầu ra của các bản phát hành Postgres trước ngày 8.4 khi DateStyle
tham số đã được đặt thành không phải ISO
đầu ra.
SET intervalstyle = 'postgres_verbose';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Kết quả:
@ 1 year 2 mons 25 days 5 hours 6 mins 7 secs
iso_8601
Kiểu này phù hợp với "định dạng có ký hiệu" được mô tả trong phần 4.4.3.2 của tiêu chuẩn ISO 8601.
SET intervalstyle = 'iso_8601';
SELECT make_interval(1, 2, 3, 4, 5, 6, 7);
Kết quả:
P1Y2M25DT5H6M7S