比较日期时间的 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
我想在日期时间数据类型列(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