Vấn đề:
Bạn muốn nhận thời gian hiện tại với độ lệch múi giờ của nó trong cơ sở dữ liệu PostgreSQL.
Giải pháp:
Chúng tôi sẽ sử dụng hàm CURRENT_TIME để nhận thông tin múi giờ và thời gian hiện tại. Đây là truy vấn bạn sẽ viết:
SELECT CURRENT_TIME;
Đây là kết quả của truy vấn:
16:10:11.232455-05
Thảo luận:
Hàm PostgreSQL CURRENT_TIME
trả về thời gian hiện tại và độ lệch múi giờ của máy mà PostgreSQL đang chạy. Nó được đưa ra dưới dạng một giá trị trong 'hh:mm:ss.nnnnnn +/- tz' đị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 xác định số giây phân số (tức là độ chính xác) từ 0 đến 6.
- + tz hoặc -tz là độ lệch múi giờ, cộng hoặc trừ so với UTC.
CURRENT_TIME
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ể, bạn có thể thêm dấu ngoặc và bao gồm một số nguyên từ 0 đến 6. (Đối số “0” sẽ không trả về giây phân số, “1” sẽ trả về một giây phân số (ví dụ:một đặt sau số thập phân), v.v. Điều này sẽ trả về thời gian với số giây phân số đã khai báo của bạn và chênh lệch múi giờ. Hãy xem ví dụ tiếp theo:
SELECT CURRENT_TIME(2) ;
Đây là kết quả của truy vấn:
16:10:11.23-05
Kết quả này chứa một phân số có 2 chữ số giây vì chúng tôi đặt 2 làm đối số. Chênh lệch múi giờ xuất hiện dưới dạng dương hoặc âm (+ hoặc -) tùy thuộc vào thời gian trước hay sau UTC.
Thời gian được trả về bởi hàm này không thay đổi trong các giao dịch hoặc một truy vấn. Nó luôn luôn là thời điểm mà giao dịch bắt đầu.