我正在嘗試編寫一個函數來表示員工(代理)6個月審覈將發生的時間,使用日期算法將6個月日期似乎我不能得到它的權利我如何在SQL表中添加月份到給定日期
SELECT EmpFirstName, EmpLastName,
CAST(DateHired, + 6 MONTH) AS ReviewDate
From Employees
我正在嘗試編寫一個函數來表示員工(代理)6個月審覈將發生的時間,使用日期算法將6個月日期似乎我不能得到它的權利我如何在SQL表中添加月份到給定日期
SELECT EmpFirstName, EmpLastName,
CAST(DateHired, + 6 MONTH) AS ReviewDate
From Employees
SELECT EmpFirstName, EmpLastName,DATEADD(month, 6, DateHired) DateHired From Employees
這並沒有提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/17303707) – Akshay
嘗試此查詢
SELECT EmpFirstName
,EmpLastName
,DateHired
SET Datehired = DATE_ADD(DateHired, INTERVAL + 6 MONTH)
FROM Employees
用SET可以改變數值(改變數值),但是你真正需要的是一個檢查條件。該關鍵字是WHERE。
SELECT .... WHERE your conditon FROM ....
您可以使用DATEADD()
SELECT EmpFirstName, EmpLastName, DateHired, DATEADD(month, 6, DateHired) AS Review_Date
From Employees
更新DateHired
列的想法並不好。因爲如果您在兩個不同的時間運行查詢,例如某些新員工加入時,會影響所有員工的記錄。
無論是在表中添加一個新列ReviewDate
,或者使用一些查詢類似上面找到REVIEWDATE
如果你想誰是由於在當月的6個月審查的所有僱員的列表,你可以試試這個:
SELECT
EmpFirstName,
EmpLastName,
DateHired
FROM Employees
WHERE
DATEADD(month, DATEDIFF(month, 0, DateHired), 0) =
DATEADD(month, DATEDIFF(month, 0, DATEADD(month, -6, GETDATE())), 0)
這些6個月的評論是否反覆發生,即在6,12,18等月份?或者,這是在聘用日期後6個月的一次性審查? –
僅僅6個月,我試圖通過日期算術方法來做到這一點 –