SQL 与 'DATEPART' 和 'DATEADD' 的语句不起作用。服务器无法识别

SQL statement with 'DATEPART' and 'DATEADD' do not work. Are not recognized by server

尝试使用 PHP 从 SQL 服务器提取客户信息,并根据注册日期计算上个月注册的客户数量。我想用 DATEPARTDATEADD 来指定我想要抓取上个月信息的参数,但服务器似乎无法识别这些参数。当前使用 MySQL 5.6.44.

我知道像

这样的说法
SELECT CLIENT_EMAIL 
FROM CLIENT_TABLE 
AND DATE_CLIENT_ADDED > (CURRENT_DATE() - INTERVAL 30 DAY)

可行,但这非常有限

$con = mysqli_connect($Host, $User, $Password, $DB);

$getLastMonthEnrollments = "SELECT CLIENT_EMAIL FROM CLIENT_TABLE AND DATEPART(m, DATE_CLIENT_ADDED) = DATEPART(m, DATEADD(m, -1, getdate()))";
$tempQuery = mysqli_query($con, $getLastMonthEnrollments);
$LastMonthEnrollments = mysqli_num_rows($tempQuery);

我希望通过计算行数得到一个数字,但结果为空。当我尝试在服务器本身内 运行 时,我得到

FUNCTION my_DB.DATEPART does not exist

我做错了吗?我在这里阅读了很多文档和问题,这似乎是正确的用法。

您正在使用 Laravel 代码中的 SQL 服务器语法,但基础数据库是 MySQL。这是您的查询,已重写并更正:

SELECT CLIENT_EMAIL
FROM CLIENT_TABLE
WHERE MONTH(DATE_CLIENT_ADDED) = MONTH(CURDATE() - INTERVAL 1 MONTH);