给个函数给大家吧
基本上是转了别人的 出处已经不记得了
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE
FUNCTION GetDateDiffValue(@begin datetime,@end datetime,@ReturnType int)
RETURNS INT
AS
--@begin:开始日期,@end:结束日期,@ReturnType:返回数据类型(0:year;1:month;2:day)
BEGIN
DECLARE @ReturnValue INT
DECLARE @CurrentValue varchar(25)
SET @CurrentValue=dbo.GetYearMonthDayPro(@begin,@end)
IF @ReturnType=0
SET @ReturnValue=SUBSTRING(@CurrentValue,1,CHARINDEX('年',@CurrentValue)-1)
ELSE
IF @ReturnType=1
SET @ReturnValue=SUBSTRING(@CurrentValue,CHARINDEX('年',@CurrentValue)+1,CHARINDEX('月',@CurrentValue)-CHARINDEX('年',@CurrentValue)-1)
ELSE
SET @ReturnValue=SUBSTRING(@CurrentValue,CHARINDEX('月',@CurrentValue)+1,CHARINDEX('天',@CurrentValue)-CHARINDEX('月',@CurrentValue)-1)
RETURN @ReturnValue
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--------------------------------------------
SELECT dbo.GetDateDiffValue('1985-10-23','2010-4-13',0) 年,
dbo.GetDateDiffValue('1985-10-23','2010-4-13',1) 月,
dbo.GetDateDiffValue('1985-10-23','2010-4-13',2) 日
结果:
年
月
日
24
5
21
这个函数有点小BUG,谁有空修改后发上来共享下