我需要能夠在接下來的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更正確,因爲他不想查找日期時間。 –