Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误:DATEPART不存在,frp,SQL选择上个月记录_Mysql_Sql_Function_Datepart - Fatal编程技术网

Mysql 错误:DATEPART不存在,frp,SQL选择上个月记录

Mysql 错误:DATEPART不存在,frp,SQL选择上个月记录,mysql,sql,function,datepart,Mysql,Sql,Function,Datepart,我正在尝试使用SQL查询来选择上个月的所有记录,我从许多地方找到了这一点,这正是我需要的,并且应该可以工作: SELECT * FROM orders WHERE DATEPART(yy,DateOrdered) = DATEPART(yy,DATEADD(m,-1,GETDATE())) AND DATEPART(m,DateOrdered) = DATEPART(m,DATEADD(m,-1,GETDATE())) 然而,我不断得到错误: #1305 - FUNCTION retail.D

我正在尝试使用SQL查询来选择上个月的所有记录,我从许多地方找到了这一点,这正是我需要的,并且应该可以工作:

SELECT *
FROM orders
WHERE DATEPART(yy,DateOrdered) = DATEPART(yy,DATEADD(m,-1,GETDATE()))
AND DATEPART(m,DateOrdered) = DATEPART(m,DATEADD(m,-1,GETDATE()))
然而,我不断得到错误:

#1305 - FUNCTION retail.DATEPART does not exist
我使用的查询是这里的其他答案中逐字逐句的查询,但是我得到了这个错误


感谢您的帮助-Tom

DATEPART是一个Transact-SQL函数,可用于Microsoft SQL Server。根据问题标签,我假设您正在使用MySQL作为数据库管理系统


看看在mysql中不起作用的

。 要将其转换为mysql,您可以执行以下操作:

SELECT *
FROM orders
WHERE YEAR(DateOrdered) = YEAR(DATE_SUB(CURDATE(), INTERVAL -1 MONTH))
AND MONTH(DateOrdered) = MONTH(DATE_SUB(CURDATE(), INTERVAL -1 MONTH))
有关mysql中可用的日期函数,请参阅。

它也可以工作

SELECT * 
FROM orders 
WHERE  MONTH(DateOrdered) = MONTH(CURRENT_DATE() - INTERVAL 1 MONTH) 
AND YEAR(DateOrdered) = YEAR(CURRENT_DATE() - INTERVAL 1 MONTH)

啊,我对这一切还是相当陌生的,并且一直在不同的SQL上滑倒。谢谢你。