计算工龄函数,就是从到职日期到当前有多少年多少月多少天:

/*
功能:統計工齡,格式: n年n月n日
設計:ok_008
日期:2008-01
備注:
*/
CREATE FUNCTION SumWorkAge (@OnDutyTime datetime)
RETURNS nvarchar(50AS  
BEGIN 
    
DECLARE @Today datetime
    
SELECT @Today=Today FROM vwgToday
RETURN    
    
CAST((CASE WHEN DAY(@OnDutyTime)<=DAY(@Today)  THEN 0 ELSE -1 END +DATEDIFF(Month,@OnDutyTime,@Today))/12 AS nvarchar(2)) +''
    
+RIGHT('0'+CAST((CASE WHEN DAY(@OnDutyTime)<=DAY(@Today)  THEN 0 ELSE -1 END +DATEDIFF(Month,@OnDutyTime,@Today))%12 AS nvarchar(2)),2+''
    
+RIGHT('0'+CAST(CASE WHEN DAY(@OnDutyTime)<=DAY(@Today)  THEN  DAY(@Today)-DAY(@OnDutyTimeELSE 
        
DATEDIFF(Day,@OnDutyTime,DATEADD(month,1,@OnDutyTime))-DAY(@OnDutyTime)+DAY(@TodayEND AS nvarchar(20)),2+''
END






@OnDutyTime参数是到职日期。vwgToday是一个取当前日期的视图(因为在自定义函数中不能直接使用GETDATE())

视图
vwgToday代码:
CREATE VIEW dbo.vwgToday
AS
SELECT         GETDATE() AS Today







相关文章:

  • 2022-12-23
  • 2021-10-28
  • 2022-12-23
  • 2022-12-23
  • 2021-06-28
  • 2022-01-07
  • 2022-12-23
  • 2021-04-20
猜你喜欢
  • 2021-05-26
  • 2021-10-04
  • 2022-01-05
  • 2021-11-18
  • 2021-10-28
  • 2021-11-26
  • 2022-12-23
相关资源
相似解决方案