2010-08-12 25 views
5

La siguiente es una versión simplificada de una consulta que una herramienta de informes está enviando a nuestra base de datos. Nunca antes había visto esta sintaxis en la cláusula Where. ¿Puede alguien decirme qué están haciendo los corchetes? Y, supongo que la 'd' actúa como un elenco de fecha?Sintaxis extraña en una cláusula 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'} 

Respuesta

10

Ver "Supported cadena literal Formatos de fecha y hora" en la sección MSDN datetime artículo.

Su {d 'XXXX-XX-XX'} es el formato de fecha y hora de ODBC. Las secuencias de escape de fecha y hora de ODBC tienen el formato: { literal_type 'constant_value' }:

tipo_literal especifica el tipo de la secuencia de escape. Las marcas de tiempo tienen tres especificadores literal_type:

  • d = la fecha sólo
  • t = tiempo sólo
  • ts = marca de tiempo (tiempo + fecha)

'constant_value' es el valor de la secuencia de escape . constant_value debe seguir estos formatos para cada literal_type.

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