Trong PostgreSQL, bạn có thể sử dụng to_date()
hàm để chuyển đổi một chuỗi thành một ngày tháng.
Cú pháp
Cú pháp như sau:
to_date(text, text)
Trong đó đối số đầu tiên là biểu diễn chuỗi của ngày và đối số thứ hai xác định mẫu mà đối số đầu tiên sử dụng.
Ví dụ
Đây là một ví dụ cơ bản để chứng minh.
SELECT to_date('10 Feb 2010', 'DD Mon YYYY');
Kết quả:
2010-02-10
Mẫu
Đối số thứ hai cung cấp mẫu mà đối số đầu tiên được cung cấp. Điều này đôi khi được gọi là "chuỗi định dạng".
Mẫu bao gồm một hoặc nhiều mẫu mẫu và tùy chọn, một hoặc nhiều công cụ sửa đổi mẫu mẫu.
Các mẫu Mẫu
Sử dụng ví dụ trước, DD
là một mẫu mẫu và Mon
là một mẫu khuôn mẫu. YYYY
cũng là một mẫu khuôn mẫu. Tất cả chúng được kết hợp để tạo thành mẫu.
Bạn có thể di chuyển từng mẫu mẫu xung quanh theo yêu cầu. Và bạn có thể sử dụng hoàn toàn các mẫu mẫu khác nhau.
Dưới đây là một số ví dụ khác sử dụng cùng một ngày, nhưng ở các định dạng khác nhau (và do đó, sử dụng các mẫu khác nhau).
\x
SELECT
to_date('10 Feb 2010', 'DD Mon YYYY') AS "DD Mon YYYY",
to_date('Feb 10 2010', 'Mon DD YYYY') AS "Mon DD YYYY",
to_date('10/02/2010', 'DD/MM/YYYY') AS "DD/MM/YYYY",
to_date('02/10/2010', 'MM/DD/YYYY') AS "MM/DD/YYYY",
to_date('02-10-2010', 'MM-DD-YYYY') AS "MM-DD-YYYY",
to_date('02102010', 'MMDDYYYY') AS "MMDDYYYY",
to_date('02-10-10', 'MM-DD-YY') AS "MM-DD-YY";
Kết quả (sử dụng đầu ra dọc):
DD Mon YYYY | 2010-02-10 Mon DD YYYY | 2010-02-10 DD/MM/YYYY | 2010-02-10 MM/DD/YYYY | 2010-02-10 MM-DD-YYYY | 2010-02-10 MMDDYYYY | 2010-02-10 MM-DD-YY | 2010-02-10
Vì vậy, tất cả đều sử dụng cùng một ngày, nhưng ngày được cung cấp ở các định dạng khác nhau. Công việc của mẫu là chỉ định rõ ràng cho Postgres định dạng ngày được cung cấp.
Như bạn có thể hình dung, nếu chúng tôi không cung cấp mẫu, một số ngày có thể bị hiểu sai cách, đặc biệt nếu ngày sử dụng một ngôn ngữ khác cho định dạng của nó.
Ví dụ:01/03/2010 có thể được hiểu là ngày đầu tiên của tháng 3 hoặc ngày thứ 3 của tháng 1, tùy thuộc vào ngôn ngữ.
Công cụ sửa đổi mẫu mẫu
Đôi khi bạn cũng có thể cần thêm công cụ sửa đổi mẫu vào mẫu.
Ví dụ:nếu ngày của bạn sử dụng hậu tố số thứ tự, bạn sẽ cần đảm bảo rằng ngày của bạn được hiểu như vậy.
SELECT
to_date('10th Feb 2010', 'DDth Mon YYYY') AS "10th Feb 2010",
to_date('01st Feb 2010', 'DDth Mon YYYY') AS "01st Feb 2010",
to_date('03rd Feb 2010', 'DDth Mon YYYY') AS "03rd Feb 2010";
Kết quả (sử dụng đầu ra dọc):
10th Feb 2010 | 2010-02-10 01st Feb 2010 | 2010-02-01 03rd Feb 2010 | 2010-02-03
Nếu tôi không sử dụng công cụ sửa đổi mẫu mẫu, tôi sẽ gặp lỗi khi sử dụng những ngày đó.
Đây là một ví dụ để minh họa.
SELECT to_date('10th Feb 2010', 'DD Mon YYYY');
Kết quả:
ERROR: invalid value "th" for "Mon" DETAIL: The given value did not match any of the allowed values for this field.
Danh sách đầy đủ các mẫu &công cụ sửa đổi mẫu
Postgres bao gồm nhiều mẫu khuôn mẫu và công cụ sửa đổi.
Chúng cũng có thể được sử dụng khi định dạng giá trị ngày / giờ (ví dụ:khi sử dụng to_char()
hàm để chuyển đổi một dấu thời gian thành một chuỗi).
Xem Mẫu &Công cụ sửa đổi Mẫu cho Định dạng Ngày / Giờ trong PostgreSQL để biết danh sách đầy đủ.