2011-08-22 19 views
10

PostgreSQL'e yeni geldim ve sürprizime göre MySQL'den UTC_DATE()'a eşdeğer bir fonksiyon yok gibi görünüyor.En hızlı postgreSQL MySQL UTC_DATE() (UTC tarihi almak) ile eşdeğerdir?

& zaman dilimi işlevlerinin bir bileşimini kullanarak istenen sonucu elde edebildim, ancak bunu yapmanın en hızlı yolunun ne olduğunu merak ediyorum.

Sadece o günün 00:00:00 anda UTC tarih bölümünü almak istiyorum. Zaman zone` olmadan

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

cevap

14

PostgreSQL saat dilimi yeteneği kullanılsın mı?
+0

ayrıca ŞİMDİ 'kullanmak Could(): –

+0

bu en iyi yol mu? Ben C# DateTime.Now DateTime.UtcNow önce kullanıyor ve sonra timezone uygulayarak düşünüyorum, ben sadece postgre içinde böyle bir şey yapıyor olabilir şüpheli .. Şu anda tarih kullanıyorum (saat dilimi ('UTC', CURRENT_TIMESTAMP)) var Bununla herhangi bir performans farkı? –

+1

@Doug Kress: Hayır, 'utc 'saat diliminde now()' ı seçin;' ve 'şimdi seçin() :: zaman dilimi olmayan zaman damgası;' farklı değerler döndürün. Fark şu ki, “şimdiki zaman diliminde”() şimdiki saat ile UTC arasındaki farkı uygular; şimdi() :: zaman dilimi olmayan zaman damgası yok. –