Ich möchte in einer Datetime-Datentypspalte (Spalte DATE_AND_TIME
) filtern, um zu erkennen, dass die Uhrzeit in der Hauptverkehrszeit ist und nicht an einem Wochenende. In meiner SQL-Anweisung unten bekomme ich die folgende Fehlermeldung:Falsche Syntax in SQL-Anweisung zum Vergleichen einer Datetime
Incorrect syntax near '>'.
Was mache ich falsch?
SELECT
CASE
WHEN DATEPART(HH, DATE_AND_TIME) BETWEEN 7 AND 9
AND DATE_AND_TIME != DATEPART(DW, DATE_AND_TIME + @@DATEFIRST - 1) > 5
THEN 'RUSH HOUR'
WHEN DATEPART(HH, DATE_AND_TIME) BETWEEN 16 AND 19
AND DATE_AND_TIME != DATEPART(DW, DATE_AND_TIME + @@DATEFIRST - 1) > 5
THEN 'RUSH HOUR'
ELSE 'NOT RUSHHOUR'
END
FROM
TRAFFIC
Ihr Code ist ein Chaos. Versuchen Sie, Ihre Logik zu formulieren und sie dem Code anzupassen. –
Ihr Fehler ist hier: 'DATEPART (DW, DATE_AND_TIME + @@ DATEFIRST - 1)' Sie können nicht zwei Vergleiche gleichzeitig haben. Leave '> 5' oder'! = DATE_AND_TIME' –
Was ist '@@ DATEFIRST'? –