在SQL中更改日期的年份

时间:2014-04-02 08:53:07

标签: sql date stored-procedures

我对编程比较陌生。我有一张桌子,在表格中我有一个栏目,显示员工何时开始在公司工作。我正在创建一个过程,在该过程中,我想取用户的开始日期并将其替换为当前年份,然后是if语句。如果刚刚计算的日期是在今天之前,则将日期的年份更改为下一年。如果问题没有完全清楚或之前被问到,请表示感谢和抱歉。

1 个答案:

答案 0 :(得分:0)

我不认为这是最优雅的解决方案,但您可以将日期分开以将其替换为当前年份。然后使用case语句将其更改为下一年(如果已经过了)。这是代码:

SELECT employee_name, 
    CASE
       WHEN CONVERT(VARCHAR,MONTH(start_date))+'/'+CONVERT(VARCHAR,DAY(start_date))+'/'+CONVERT(VARCHAR,YEAR(getdate())) < GETDATE() THEN CONVERT(VARCHAR,MONTH(start_date))+'/'+CONVERT(VARCHAR,DAY(start_date))+'/'+CONVERT(VARCHAR,YEAR(getdate())+1)
       WHEN CONVERT(VARCHAR,MONTH(start_date))+'/'+CONVERT(VARCHAR,DAY(start_date))+'/'+CONVERT(VARCHAR,YEAR(getdate())) >= GETDATE() THEN CONVERT(VARCHAR,MONTH(start_date))+'/'+CONVERT(VARCHAR,DAY(start_date))+'/'+CONVERT(VARCHAR,YEAR(getdate()))
    END AS anniversary_date
FROM Employees