SQL-server 'WEEKDAY' 不是可识别的内置函数名称

SQL-server 'WEEKDAY' is not a recognized built-in function name

我正在使用大约一个月前(2021 年 8 月)下载的 SQL Server Management Studio v18.9.2。 我在这里搜索了有关 SO、SQLServerTutorial.net 和 w3schools.com 的帮助,但无法弄清楚我做错了什么。

我试图在结果中获取三列:RentalIDStartTime(作为日期时间数据类型存在)和一个包含星期几的新列(星期一、星期二等)。我已将查询限制为仅查询 2021 年 6 月以来的记录。

我试过这三个函数名:weekday、dw、w,大小写组合,都return同样的错误:

SELECT RentalID, StartTime, DATENAME(WEEKDAY(StartTime)) AS DayOfWeek
FROM FullData
WHERE StartTime > '2021-05-31'

错误消息:'WEEKDAY' is not a recognized built-in function name

然后我得到一个错误:

DATENAME(WEEKDAY(StartTime)) AS DayOfWeek
FROM FullData
WHERE StartTime > '2021-05-31'

错误消息:Incorrect syntax near 'WEEKDAY'

然后我得到一个错误:

DATENAME(WEEKDAY, StartTime) AS DayOfWeek
FROM FullData
WHERE StartTime > '2021-05-31'

错误消息:Incorrect syntax near 'WEEKDAY'

当我尝试 MONTH 函数时,我得到了一个不同的错误:

SELECT RentalID, StartTime, DATENAME(MONTH(StartTime)) AS Month
FROM FullData
WHERE StartTime > '2021-05-31'
ORDER BY Month

错误消息:The datename function requires 2 argument(s). 我认为这两个参数是 MONTHStartTime 但我猜不是。

DATENAME() 的正确语法有两个参数:

DATENAME(WEEKDAY, StartTime)

DATENAME(MONTH, StartTime)
         

您将日期部分用作函数调用而不是 datename 函数的参数:

DATENAME(WEEKDAY, StartTime) AS DayOfWeek
-- Two args ----^

或者

DATENAME(MONTH, StartTime) AS [Month]
-- Two args --^