我正在尝试编写一个函数来表示员工(代理)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个月,我试图通过日期算术方法来做到这一点 –