我需要能够在接下来的45天内找到所有需要审核的员工。我有MS SQL:转换为MySQL的MS SQL查询
Select *
from Employee
where DATEDIFF(yy,HireDate,GetDate()+45) > DATEDIFF(yy,HireDate,GetDate())
这是如何转换为MySQL?
我需要能够在接下来的45天内找到所有需要审核的员工。我有MS SQL:转换为MySQL的MS SQL查询
Select *
from Employee
where DATEDIFF(yy,HireDate,GetDate()+45) > DATEDIFF(yy,HireDate,GetDate())
这是如何转换为MySQL?
我想你可以只使用CURDATE而不是GETDATE,所以它会仅仅是:
Select * from Employee where DATEDIFF(HireDate,CurDate()) > DATEDIFF(HireDate,CurDate())
尝试:
Select *
from Employee
where DATEDIFF(HireDate,DATE_ADD(CURDATE(), INTERVAL 45 DAY)) > DATEDIFF(HireDate,CURDATE())
这比我的更正确。 –
您应该只需要检查DATEDIFF
一次。只需获取天数并进行比较即可。
SELECT *
FROM Employee
WHERE DATEDIFF(CURDATE(), HireDate) <= 45
文档为MySQL的DATEDIFF
(和其他日期/时间函数):http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
你尝试将其转换为MySQL的?请转换尝试后编辑您的问题。 – Taryn
MySQL的'DATEDIFF'有点不同。另外,为了获得MySQL中的当前时间,它是'NOW()'或'CURDATE()'。 http://dev.mysql.com/doc/refman/5.1/zh/date-and-time-functions.html –
实际上CurDate更正确,因为他不想查找日期时间。 –