时间差计算

 

 一、在C#后台中计算两个时间差

   DateTime dt1 = new DateTime(2004,03,26,13,31,40);
       DateTime dt2 = new DateTime(2004,03,26,18,39,30);

       string  dt = DateDiff(dt1, dt2);

//计算时间的方法

public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
        {
            string dateDiff = null;
            TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
            TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);

            TimeSpan ts = ts1.Subtract(ts2).Duration();

            dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
            return dateDiff;

            #region note
            //C#中使用TimeSpan计算两个时间的差值
            //可以反加两个日期之间任何一个时间单位。
            //TimeSpan ts = Date1 - Date2;
            //double dDays = ts.TotalDays;//带小数的天数,比如1天12小时结果就是1.5
            //int nDays = ts.Days;//整数天数,1天12小时或者1天20小时结果都是1 
            #endregion
        }

二、在sql中计算时间差

  使用DATEDIFF方法计算两个时间差,该方法有三个参数,第一个是计算出结果的时间类型,第二个是起始时间,第三个是结束时间。

datepart缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

  通过该表填写第一个参数,计算出时间差,然后转换成想要的结果。

  例:

   select DATEDIFF(MI,'2016-08-20 13:13:20','2016-08-20 15:14:20')--计算出两个时间相差的分钟。(121分钟)

   select    121 / 60 ,121-(121 / 60*60)--根据时间分钟算出小时(2小时1分钟)

  

posted @ 2016-09-26 09:38  ☺Pual  阅读(402)  评论(0编辑  收藏  举报