计算两个时间相差多少年月日的sql算法

 1 /****** Object:  StoredProcedure [dbo].[GetDateDiff]    Script Date: 11/12/2019 16: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   

原文地址:https://www.cnblogs.com/AlbertSmith/p/11896723.html

时间: 2024-08-29 01:43:50

计算两个时间相差多少年月日的sql算法的相关文章

js计算两个时间相差的天数

day1='2014-03-31 00:00:01'; function get_day(day1,day2){ var s = day1; var dt = Date.parse(s.replace(/-/g,"/")); var day1 = new Date(dt); var s = day2; var dt = Date.parse(s.replace(/-/g,"/")); var day2 = new Date(dt); var date3=day1.g

C/C++中计算两个时间相差的天数

在系统中经常用到time()函数获取系统时间,也就是通常所说的日历时间,这个时间是从1970年1月1日0时开始到现在的秒数. 问:已有日历时间t1和t2(假设t1>t2),如何计算他们之间相差的天数. 答: day = (t1+time_zone*60*60)/time_of_day - (t2+time_zone*60*60)/time_of_day 其中time_zone表示时区间隔,比如说北京时间相比于标准时间就需要加8小时,可以参考下图.time_of_day为一天的秒数,等于24*60

js计算两个时间相差天数

//new Date(aDate[1], aDate[2], aDate[0]) 兼容性比new Date(aDate[1]+"-"+ aDate[2]+"-"+aDate[0])强 //两个时间相差天数 function datedifference(sDate1, sDate2) { //sDate1和sDate2是2006-12-18格式 var aDate, oDate1, oDate2, iDays aDate = sDate1.split("-

java计算两个时间相差(天、小时、分钟、秒)

public static Long dateDiff(String startTime, String endTime, String format, String str) { // 按照传入的格式生成一个simpledateformate对象 SimpleDateFormat sd = new SimpleDateFormat(format); long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数 long nh = 1000 * 60 * 60;// 一小时的毫

SqlSever基础 datediff 计算两个时间相差多少年份

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 --查看现在的时间,方便对比 2 select getdate() 3 select datediff(year,'1996-11-01',getdate()) 4 select datediff(year,'1996-11-03',getdate()) 2 show -----

db2 怎么计算两个时间相差多少个月。如2015-10-10 和2014-1-12

SELECT timestampdiff (256, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔年", timestampdiff (128, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "间隔季度", timestampdiff (64

PHP计算两个日期相差的年月日时分秒

$start_time = '2017-09-06 15:12:20'; $end_time = '2018-09-08 10:20:45'; get_time($start_time,$end_time); function get_time($start,$end){ $start = strtotime($start); $end = strtotime($end); if ($start > $end){ $diff_time = $start-$end; }else{ $diff_ti

sql server 计算两个时间 相差的 几天几时几分几秒

CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) / ( 60 * 60 * 24 ) AS INT ) AS VARCHAR ) + '天' + CAST ( CAST ( DATEDIFF ( ss, StartTime, ConcludeTime ) % 86400 / 3600 AS INT ) AS VARCHAR ) + '小时' + CAST ( CAST ( DATEDIFF ( ss, StartTime, Concl

计算两个时间的时间差(天、小时、分钟、秒数)

例子:计算某个时间距离当前时间相差的天数 1.获取当前时间 Date.prototype.Format = function (fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "H+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": thi