2010-08-12 17 views
5

Aşağıda, bir raporlama aracının veritabanımıza gönderdiği bir sorgulamanın basitleştirilmiş bir sürümüdür. Bu sözdizimini, Where cümlesinde daha önce hiç görmedim. Birisi bana parantezlerin ne yaptığını söyleyebilir mi? Ve, ben 'd' bir tarih döküm olarak görürsünüz?Bir where cümlede garip sözdizimi

Select 
    ch.ContainerID, 
    ch.WorkItemHistoryEventTypeEnumID, 
    ch.EventTime, 
    ch.ContainerBinName, 
    ch.WorkItemSerialNumber, 
    ch.Closed 
From Wip.vwContainerHistory ch 
Where 
    ch.EventTime >= {d '2010-08-09'} 

cevap

10

bakın MSDN datetime makalesinde bölümüne "datetime için dize Değişmez Biçimleri Desteklenen".

{d 'XXXX-XX-XX'}, ODBC tarihçe biçimidir. ODBC zaman damgası çıkış dizileri şu biçimdedir: { literal_type 'constant_value' }:

literal_type, çıkış sırasının türünü belirtir. Damgaları üç literal_type belirleyicilerine:

  • , d = sadece tarih
  • t = süre sadece
  • ts = damgası (saat + tarih)

'constant_value' çıkış sırası değeridir . constant_value, her bir literal_type için bu biçimleri izlemelidir.

d > yyyy-mm-dd 
t > hh:mm:ss[.fff] 
ts > yyyy-mm-dd hh:mm:ss[.fff]