如何在SQL表中的给定日期添加月份

时间:2017-09-12 05:57:56

标签: sql sql-server

我正在尝试编写一个函数来表示员工(代理人)6个月的审核时间,使用日期算术,在他们的雇佣日期加上6个月,我似乎无法做到正确

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

5 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

尝试此查询

SELECT EmpFirstName
    ,EmpLastName
    ,DateHired

SET Datehired = DATE_ADD(DateHired, INTERVAL + 6 MONTH)
FROM Employees

https://www.w3schools.com/sql/func_mysql_date_add.asp

答案 2 :(得分:0)

使用SET,您可以改变值(更改值),但您真正需要的是要检查的条件。那个SQL关键字是WHERE。

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

答案 3 :(得分:0)

您可以使用DATEADD()

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

更新DateHired列的想法并不是那么好。因为如果您在两个不同的时间运行查询,例如当某些新员工加入时,它将影响所有员工的记录。

在表格中为ReviewDate添加新列,或使用上面的查询来查找ReviewDate

答案 4 :(得分: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)