USE [SZ_NDJZDH]
GO
CREATE FUNCTION getDateDiff
(
@DateFR DATETIME,
@DateTO DateTime
)
RETURNS Varchar(100)
AS
BEGIN
DECLARE @tmp Varchar(100)
DECLARE @tmp1 Varchar(100)
DECLARE @tmp2 Varchar(100)
select @tmp=Ta.day,@tmp1=Ta.month,@tmp2=Ta.YEAR from ( select case when day(@DateTO)-day(@DateFR)<0 then
(case when month(@DateTO)-1=1 or month(@DateTO)-1=3 or month(@DateTO)-1=5 or month(@DateTO)-1=7 or month(@DateTO)-1=8 or month(@DateTO)-1=10 or month(@DateTO)-1=12
then 31+day(@DateTO)-day(@DateFR)
when month(@DateTO)-1=2 and YEAR(@DateTO)%4=0 then 29+day(@DateTO)-day(@DateFR)
when month(@DateTO)-1=2 and YEAR(@DateTO)%4<>0 then 28+day(@DateTO)-day(@DateFR)
else 30+day(@DateTO)-day(@DateFR) end)
else day(@DateTO)-day(@DateFR) end AS day, --日
case when day(@DateTO)-day(@DateFR)<0 then
(case when ltrim(datediff(mm,@DateFR,@DateTO)%12)=0 then 12 else ltrim(datediff(mm,@DateFR,@DateTO)%12) end)-1
else ltrim(datediff(mm,@DateFR,@DateTO)%12) END AS month , --月
case when day(@DateTO)-day(@DateFR)<0 then
(case when ltrim(datediff(yy,@DateFR,@DateTO))=0 then 1 else ltrim(datediff(yy,@DateFR,@DateTO)) end)-1
else ltrim(datediff(yy,@DateFR,@DateTO)) end AS year --年
) Ta
RETURN @tmp2+'年'+ @tmp1+'月'+@tmp+'日'
END
--SELECT dbo.getDateDiff('1991-12-20',GETDATE())