2017-09-12 46 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) 
相关问题