--用函式實現, 不是最優的,但實現了相關功能
create function dbo.getdatediff(@b_date datetime,@e_date datetime)
returns nvarchar(100)
begin
declare @str nvarchar(100)
select @str=cast(yearnum as varchar(20))+n'年'+cast(monthnum as varchar(20))+n'月'+cast(datediff(dd,dateadd(mm,monthnum,dateadd(yy,yearnum,@b_date)),@e_date) as varchar(20))+n'日'
from
( select case when @e_date>dateadd(yy,datediff(yy,@b_date,@e_date),@b_date)
then datediff(yy,@b_date,@e_date) else datediff(yy,@b_date,@e_date)-1 end yearnum
,case when @e_date>dateadd(mm,datediff(mm,@b_date,@e_date),@b_date)
then datediff(mm,@b_date,@e_date)%12 else (datediff(mm,@b_date,@e_date)-1)%12 end monthnum
) a
return @str
end
select id, ename, hiredate 入職日期,dbo.getdatediff(hiredate,getdate()) 服務日期 from staff
/* select dbo.getdatediff('2007-4-11','2009-5-3')
--返回結果
2年0月22日
Java計算兩個日期間的年,月,日之差
由於在開發中需要計算車的使用年限,我當時使用的是以下方案並記錄下來,希望能給有需要計算日期差的朋友有所幫助。當然,中間的計算邏輯根據不同要求來計算。計算使用年限 enrolldate 註冊日期 nowdate 當前日期或給定日期 public void calculatetheuseyaers st...
日期轉換成年月日(C語言 詳細注釋)
天數轉換成具體日期 給出某年的第多少天,算出這天的日期 具體日期轉換成天數 給定日期得出是該年的第多少天 includeint isleap int year int day of year int year,int month,int day void monthday int year,int ...
計算兩個日期相差的年,月,日
計算兩個日期相差的年和月 param fromdate 開始時間 param todate 結束時間 return 想相差年月拼到一起,用逗號隔開,前面為相差年 public static stringbuffer calculator string fromdate,string todate 測...