Mysql 错误:DATEPART不存在,frp,SQL选择上个月记录
我正在尝试使用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
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
我使用的查询是这里的其他答案中逐字逐句的查询,但是我得到了这个错误
感谢您的帮助-TomDATEPART是一个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上滑倒。谢谢你。