2010-08-12 3 views
5

Voici une version simplifiée d'une requête envoyée par un outil de création de rapports à notre base de données. Je n'ai jamais vu cette syntaxe auparavant dans la clause Where. Quelqu'un peut-il me dire ce que font les supports? Et, je suppose que le 'd' agit comme une distribution de date?Syntaxe étrange dans une clause 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'} 

Répondre

10

Voir "Formats pris en charge pour les chaînes littérales datetime" section MSDN datetime article.

Votre {d 'XXXX-XX-XX'} est au format datetime ODBC. Les séquences d'échappement d'horodatage ODBC sont au format: { literal_type 'constant_value' }:

literal_type spécifie le type de la séquence d'échappement. Horodatages ont trois literal_type spécificateurs:

  • J = date seulement
  • t = temps seulement
  • ts = horodatage (Heure et date)

'constant_value' est la valeur de la séquence d'échappement . constant_value doit suivre ces formats pour chaque literal_type.

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