2010-08-12 4 views
5

Ниже приведена упрощенная версия запроса, отправляемого инструментом отчетности в нашу базу данных. Я никогда не видел этот синтаксис раньше в предложении Where. Может ли кто-нибудь сказать мне, что делают скобки? И, я полагаю, «d» действует как дата?Странный синтаксис в предложении Where

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

ответ

10

См "Поддерживаемые форматы строкового литерала для DateTime" раздел в MSDN datetime статьи.

Ваш {d 'XXXX-XX-XX'} - формат даты и времени ODBC. Временные escape-последовательности ODBC имеют формат: { literal_type 'constant_value' }:

literal_type указывает тип escape-последовательности. Временные метки имеют три literal_type спецификаторов:

  • д = дата только
  • т = время только
  • TS = метка времени (время + дата)

'constant_value' представляет собой значение последовательности побега , constant_value должно следовать этим форматам для каждого literal_type.

d > yyyy-mm-dd 
t > hh:mm:ss[.fff] 
ts > yyyy-mm-dd hh:mm:ss[.fff] 
Смежные вопросы