2011-08-22 14 views
10

Tôi mới sử dụng postgreSQL và ngạc nhiên của tôi dường như không có hàm duy nhất nào tương đương với UTC_DATE() từ MySQL.PostgreSQL nhanh nhất tương đương với MySQL UTC_DATE() (nhận ngày UTC)?

Tôi có thể nhận kết quả mong muốn bằng cách sử dụng kết hợp ngày & chức năng múi giờ nhưng tôi tự hỏi cách nhanh nhất để thực hiện điều này là gì.

Tôi chỉ muốn nhận được UTC phần ngày, tại 00:00:00 thời gian của ngày hiện tại.

Trả lời

14

Sử dụng khả năng múi giờ của PostgreSQL:

SELECT 
    CAST(NOW() at time zone 'utc' AS date); 
+0

thể bạn cũng sử dụng 'NOW() mà không cần thời gian zone'? –

+0

là cách tốt nhất? Im nghĩ rằng trong C# DateTime.Now đang sử dụng DateTime.UtcNow đầu tiên và sau đó áp dụng múi giờ, tôi chỉ nghi ngờ nó có thể làm một cái gì đó như thế này trong postgre .. Tôi hiện đang sử dụng ngày (múi giờ ('UTC', CURRENT_TIMESTAMP)) là có bất kỳ sự khác biệt hiệu suất với điều này? –

+1

@Doug Kress: Không, các câu lệnh 'select now() tại múi giờ 'utc';' và 'select now() :: dấu thời gian không có múi giờ;' trả về các giá trị khác nhau. Sự khác biệt là 'now() tại múi giờ' áp dụng chênh lệch tính bằng giờ giữa giờ và UTC; 'now() :: dấu thời gian không có múi giờ' thì không. –

Các vấn đề liên quan