2017-09-12 82 views
0

我正在嘗試編寫一個函數來表示員工(代理)6個月審覈將發生的時間,使用日期算法將6個月日期似乎我不能得到它的權利我如何在SQL表中添加月份到給定日期

SELECT EmpFirstName, EmpLastName, 
CAST(DateHired, + 6 MONTH) AS ReviewDate 
From Employees 
+1

這些6個月的評論是否反覆發生,即在6,12,18等月份?或者,這是在聘用日期後6個月的一次性審查? –

+0

僅僅6個月,我試圖通過日期算術方法來做到這一點 –

回答

0
SELECT EmpFirstName, EmpLastName,DATEADD(month, 6, DateHired) DateHired From Employees 
+0

這並沒有提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/17303707) – Akshay

0

用SET可以改變數值(改變數值),但是你真正需要的是一個檢查條件。該關鍵字是WHERE。

SELECT .... WHERE your conditon FROM .... 
0

您可以使用DATEADD()

SELECT EmpFirstName, EmpLastName, DateHired, DATEADD(month, 6, DateHired) AS Review_Date 
From Employees 

更新DateHired列的想法並不好。因爲如果您在兩個不同的時間運行查詢,例如某些新員工加入時,會影響所有員工的記錄。

無論是在表中添加一個新列ReviewDate,或者使用一些查詢類似上面找到REVIEWDATE

0

如果你想誰是由於在當月的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) 
相關問題