Where子句中的奇怪语法

Ran*_*der 5 sql-server

以下是报告工具发送到数据库的查询的简化版本.我之前从未在Where子句中看到过这种语法.有人能告诉我括号在做什么吗?而且,我认为'd'可以作为约会对象?

Select
    ch.ContainerID, 
    ch.WorkItemHistoryEventTypeEnumID,
    ch.EventTime,
    ch.ContainerBinName,
    ch.WorkItemSerialNumber,
    ch.Closed
From Wip.vwContainerHistory ch
Where   
   ch.EventTime >= {d '2010-08-09'} 
Run Code Online (Sandbox Code Playgroud)

Pav*_*yuk 10

请参阅MSDN datetime文章中的"datetime支持的字符串文字格式"部分.

您的{d 'XXXX-XX-XX'}是ODBC日期时间格式.ODBC时间戳转义序列的格式为{ literal_type 'constant_value' }:

literal_type指定转义序列的类型.时间戳有三个literal_type说明符:

  • d =仅限日期
  • t =仅限时间
  • ts =时间戳(时间+日期)

'constant_value'是转义序列的值.constant_value必须遵循每个literal_type的这些格式.

d > yyyy-mm-dd  
t > hh:mm:ss[.fff]  
ts > yyyy-mm-dd hh:mm:ss[.fff]
Run Code Online (Sandbox Code Playgroud)