2010-08-12 2 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

MSDN datetime 문서의 "datetime에 대해 지원되는 문자열 리터럴 형식"절을 참조하십시오.

{d 'XXXX-XX-XX'}은 ODBC datetime 형식입니다. ODBC 타임 스탬프 이스케이프 시퀀스의 형식은 다음과 같습니다. { literal_type 'constant_value' } :

literal_type 이스케이프 시퀀스의 유형을 지정합니다. 타임 스탬프는 세 literal_type 지정자 가지고

  • D = 날짜 만
  • 톤 = 번만
  • TS = 소인 (시간 + 일자)

'constant_value'이스케이프 시퀀스의 값이 . constant_value는 각 literal_type에 대해이 형식을 따라야합니다.

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