2013-02-21 34 views
17

Neden getdate() yerine GETUTCDATE() işlevini kullanmalıyız ya da tam tersi?GETUTCDATE İşlevi

Her ikisinin de amacı nedir? Lütfen bana örnek olsun.

cevap

40

GETUTCDATE() şimdiki UTC zaman (Evrensel Zaman Koordinat veya Greenwich Saati)

  • Öyle bir nondeterministic fonksiyonu, bu sütuna başvuru Görüntüleme ve ifadeler endeksli olamaz temsil eder.

geçerli UTC zamanı şimdiki yerel saat ve SQL Server çalıştıran bilgisayarın işletim sisteminde saat dilimi ayarı türetilmiştir.

GETDATE() ve GETUTCDATE() arasındaki fark süresi, SQL Server makinenin arasında bölge numarasını olup. Daha iyi anlaşılması için

örneğe bakın:

DECLARE @local_time DATETIME; 
DECLARE @gmt_time DATETIME; 
SET @local_time = GETDATE(); 
SET @gmt_time = GETUTCDATE(); 
SELECT 'Server local time: ' 
    + CONVERT(VARCHAR(40),@local_time); 
SELECT 'Server GMT time: ' 
    + CONVERT(VARCHAR(40),@gmt_time); 
SELECT 'Server time zone: ' 
    + CONVERT(VARCHAR(40), 
     DATEDIFF(hour,@gmt_time,@local_time)); 
GO 

ÇIKIŞ: Bu sizin bölgesel zamanla tarih dönecektir ya da biz söyleyebiliriz

  • Server local time: Jun 2 2007 10:06PM 
    Server GMT time: Jun 2 2007 4:21PM 
    Server time zone: 6 
    

    GETDATE(), geçerli sistem tarihini ve saatini döndürür.

  • SQL sunucusuna uzaktan bağlandıysanız, görüntülenen zaman damgası uzak makinenizin değil yerel makinenizin zaman damgası olur.
  • Bu belirsiz olmayan bir işlevdir.
  • Bu sütuna başvuran görünümler ve ifadeler dizine eklenemez. Bu tarih ve saati GMT (Greenwich Saati) dönecektir

    getUTCDate().

  • GETUTCDATE(), Saat Dilimlerinden bağımsız zaman damgasını depolamak için kullanılabilir.
  • Geçerli UTC saati, geçerli yerel saatten ve Microsoft SQL Server örneğinin çalıştığı bilgisayarın işletim sistemindeki saat dilimi ayarından türetilmiştir.
  • GETUTCDATE, belirsiz olmayan bir işlevdir.
  • Bu sütuna başvuran görünümler ve ifadeler dizine eklenemez.