1. 程式人生 > 實用技巧 >計算時間差(c#和sqlServer)

計算時間差(c#和sqlServer)

         /// <summary>
         /// 計算兩個日期的時間間隔
         /// </summary>
         /// <param name="DateTime1">第一個日期和時間</param>
         /// <param name="DateTime2">第二個日期和時間</param>
         /// <returns></returns>
         private 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; }


//比較時間大小
string  st1="12:13";
string  st2="14:14";
DateTime  dt1=Convert.ToDateTime(st1);
DateTime  dt2=Convert.ToDateTime(st2);
DateTime  dt3=DateTime.Now;
if(DateTime.Compare(dt1,dt2)>0)
msg.Text=st1+">"+st2;
else
msg.Text=st1+"<"+st2;
 
--如果 
--RemindTime='' RemindFormata為空
--RemindTime大於現在,那麼獲取其時間差 。。天。。小時。。分鐘
--RemindTime小於現在,那麼擷取獲取其日期 例:08-31
select case when a.RemindTime='' then '' when a.RemindTime>GetDATE() then cast(floor(datediff(minute,GETDATE(),a.RemindTime) / 1440) as varchar)+''+cast(floor((datediff(minute,GETDATE(),a.RemindTime) % 1440)/60) as varchar)+'小時'+ cast(((datediff(minute,GETDATE(),a.RemindTime))-(floor(datediff(minute,GETDATE(),a.RemindTime) / 1440) *1440)-(floor((datediff(minute,GETDATE(),a.RemindTime) % 1440)/60)*60)) as varchar)+'' when a.RemindTime<GetDATE() then SUBSTRING(CONVERT(varchar(10), a.RemindTime, 23),6,10) end as RemindFormata from [dbo].[收文] as a order by ID DESC