1 / * *****オブジェクト:のStoredProcedure [DBO] [GetDateDiff]スクリプト日:。2019年11月12日夜04時14分05秒***** * / 2 SET ANSI_NULLS ONを 3。 GO 4。 SET QUOTED_IDENTIFIER ON 5。 GO 6 - どのように多くのSQLアルゴリズム新生児の年齢を計算するために、両者の間の時間差の日付を計算するために 7 ALTER PROCEDURE [ DBO ]。[ GetDateDiff ] 8 @fromDate NVARCHAR(10)、- 開始日 9 @toDate NVARCHAR(10) -结束日期 10 AS 11 DECLARE @YearDiff INTEGER 12 DECLARE @MonthDiff INTEGER 13 DECLARE @DayDiff INTEGER 14 DECLARE @ToMonth INTEGER 15 DECLARE @FromDay INTEGER 16 DECLARE @Today INTEGER 17 18 19 SET @YearDiff = LTRIM(DATEDIFF(YY、@fromDate、@toDate )) 20 SET @MonthDiff = LTRIM(DATEDIFF(MM、@fromDate、@toDate)% 12 ) 21 SET @ToMonth = MONTH(CAST(@toDate AS DATETIME )) 22 SET @FromDay = DAY(CAST(@fromDate AS DATETIME )) 23 SET @Today = DAY(CAST(@ToDate AS DATETIME )) 24 IF(@Today - @FromDay)< 0 25は、 BEGIN 26 IF(@ToMonth - 1)= 1 27 OR(@ToMonth - 1)= 3 28 OR(@ToMonth - 1)= 5 29 OR(@ToMonth - 1)= 7 30 OR(@ToMonth - 1)= 8 31 OR(@ToMonthは - 1)= 10 32 OR(@ToMonth - 1)= 12 33 BEGIN 34 SET @DayDiff = 31 + @Today - @FromDay 35 SET @MonthDiff = @MonthDiff - 1 36 END 37 ELSE 38は、 BEGIN 39 SET @DayDiff = 30 +を @Today - @FromDay 40 SET @MonthDiff = @MonthDiff - 1つの 41 END 42 END 43 ELSE 44は BEGIN 45 SET @DayDiff = @Today - @FromDay 46 END 47 48 SELECT CAST(@YearDiff AS NVARCHAR(10))+ ' 岁' 49 + CAST(@MonthDiff AS NVARCHAR(10))+ ' 个月' 50 + CAST(@DayDiff AS NVARCHAR(10))+ ' デイ' 51