2013-04-02 4 views
9

Beim Analysieren von T-SQL-Ausführung habe ich eine Abfrage gefunden, die {ts '2013-04-02 00:00:00'} in where-Klausel enthält. Ich war so neugierig und versuchte die Quelle zu finden. Es wurde von einem CrystalReport-Bericht ausgeführt.Was ist {ts '2013-04-02 00:00:00'}?

Hier ist die Abfrage.

SELECT * 
FROM [Table] B 
WHERE CONVERT(VARCHAR, [AddedDateTime], 111) 
     BETWEEN CONVERT(VARCHAR, {ts '2013-03-31 00:00:00'}, 111) 
     AND  CONVERT(VARCHAR, {ts '2013-04-02 00:00:00'}, 111) 

Kann mir jemand sagen, was ist es und wo können wir es verwenden?

+0

Ich habe kein Problem damit, ich wollte nur wissen, was es ist und wo wir es verwenden können – SAM

Antwort

18

Es ist eine ODBC literal Escape-Sequenz

ODBC für Datum, Zeit Escape-Sequenzen definiert, und Zeitstempel Literale. Die Syntax dieser Escape-Sequenzen ist wie folgt:

{ts 'value'} 

, wo wir es nicht verwenden kann?

Überall dort, wo ein datetime Wert erwartet wird. ("timestamp" ist SQL Standard-Umgangssprache für das, was SQL Server datetime aufruft).

+1

Um das Bild zu vervollständigen: JDBC verwendet die gleichen Escape-Sequenzen: http://docs.oracle.com/javase/ 6/docs/technotes/guides/jdbc/getstart/statement.html # 1006519 –