Vấn đề:
Bạn muốn có thời gian hiện tại trong cơ sở dữ liệu PostgreSQL. Bạn không muốn chênh lệch múi giờ.
Giải pháp:
Chúng tôi sẽ sử dụng hàm LOCALTIME
để có được thời gian hiện tại mà không có chênh lệch múi giờ.
SELECT LOCALTIME;
Đây là kết quả của truy vấn:
22:15:51.987914
Thảo luận:
Hàm PostgreSQL LOCALTIME
trả về thời gian hiện tại trên máy chạy PostgreSQL. Nó trả về nó dưới dạng một kiểu dữ liệu thời gian trong ' hh:mm:ss.nnnnnn ' định dạng. Ở định dạng này:
- hh là một giờ có 2 chữ số.
- mm là phút có 2 chữ số.
- ss là một giây có 2 chữ số.
- nnnnnn là phân số giây (độ chính xác từ 0 đến 6 chữ số).
Như bạn nhận thấy, hàm này không có dấu ngoặc. Tuy nhiên, nếu bạn muốn hiển thị thời gian với độ chính xác cụ thể, hãy sử dụng dấu ngoặc vuông với số nguyên từ 0 đến 6 làm đối số. Điều này sẽ trả về thời gian với số giây phân số mong muốn của bạn. Ví dụ:LOCALTIME(1)
chỉ biểu thị một giây phân số (tức là một vị trí sau số thập phân); 2 sẽ trả về hai vị trí, v.v. Giá trị mặc định (không có dấu ngoặc hoặc dấu ngoặc trống) là sáu, cũng là số giây phân số tối đa. Hãy xem ví dụ tiếp theo:
SELECT LOCALTIME(0) ;
Đây là kết quả của truy vấn:
21:12:06
Kết quả này không chứa giây phân số vì chúng tôi đặt 0 làm đối số.
LOCALTIME
trả về thời gian mà giao dịch hiện tại bắt đầu. Sự khác biệt giữa LOCALTIME
và CURRENT_TIME
LOCALTIME đó không bao gồm chênh lệch múi giờ.