比较日期时间的 SQL 语句中的语法不正确

Incorrect syntax in SQL statement comparing a datetime

我想在日期时间数据类型列(DATE_AND_TIME 列)中进行筛选,以检测时间是否在高峰时间而不是周末。在我下面的 SQL 语句中,出现以下错误:

Incorrect syntax near '>'.

我做错了什么?

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

试试这个:

SELECT CASE WHEN (DATEPART(HH,DATE_AND_TIME) BETWEEN 7 AND 9) AND DATE_AND_TIME != DATEPART(DW, DATEADD(DAY,@@DATEFIRST - 1,DATE_AND_TIME))  AND DATEPART(DW, DATEADD(DAY,@@DATEFIRST - 1,DATE_AND_TIME)) > 5 AND  THEN 'RUSH HOUR'
            WHEN (DATEPART(HH,DATE_AND_TIME) BETWEEN 16 AND 19) AND DATE_AND_TIME != DATEPART(DW, DATEADD(DAY,@@DATEFIRST - 1,DATE_AND_TIME)) AND DATEPART(DW, DATEADD(DAY,@@DATEFIRST - 1,DATE_AND_TIME)) > 5 THEN 'RUSH HOUR'
            ELSE 'NOT RUSHHOUR' END
FROM TRAFFIC