Ich versuche, ein Datum in SQL zu vergleichen und ein neues Feld zu erstellen, damit ich die Ergebnisse nach heutigen Datum und anderen Datum (en) gruppieren kann. Ich konvertiere beide Daten in CHAR. Allerdings bekomme ich einen Ausdruck Fehler in der Nähe von = und) - Dies ist für einen SSRS-Bericht.TSQL - Case Date Vergleichen
Es gibt bereits eine ziemlich komplexe SQL-Anweisung, und ich versuche nur, diese zusätzliche Anweisung hinzuzufügen, um bei der Gruppierung zu helfen.
Hier ist ein Beispiel.
Kasten WHEN Convert (Char (8), FieldDate, 103) = Konvertieren (Char (8), GetDate(), 103) Then '0' tmpDate = '1' ELSE tmpDate = END
Dieseführt zu einer falschen sntax in der Nähe von '=' Dies führt zu einer falschen sntax nahe ')'
Dank
Ich dachte daran, das zu tun, war mir aber nicht sicher, wie genau es das Datum aufgreifen würde. Aber bei einem schnellen Blick scheint es zu funktionieren. Ich war auf der Suche nach einem Rat, bevor ich das Datum ohne Zeit zurückbekam, und die Wege wiesen auf meine erste Methode oben hin. – Audioillity
Die Verwendung von DATEDIFF, wie oben beschrieben, ist für den Vergleich von * zwei Daten in Ordnung. – LukeH
Wenn Sie eigentlich nur das Datumselement als 'DATETIME' anstelle eines Strings ausgeben möchten, können Sie 'DATEADD (Tag, 0, DATEDIFF (Tag, 0, FeldDatum))' usw. verwenden, für die das Zeitelement gesetzt sein soll '00: 00: 00.000'. – LukeH