string d1 = "2006/11/21 21:31:38";
string d2 = "2006/11/19 20:31:38";
DateTime dt1 = Convert.ToDateTime(d1);
DateTime dt2 = Convert.ToDateTime(d2);
string ss = Convert.ToString(dt1 - dt2);
this.TextBox1.Text = ss;
---------------------------------------------
EMail:[email protected] 请给我一个与您交流的机会!
string d2 = "2006/11/19 20:31:38";
DateTime dt1 = Convert.ToDateTime(d1);
DateTime dt2 = Convert.ToDateTime(d2);
string ss = Convert.ToString(dt1 - dt2);
this.TextBox1.Text = ss;
---------------------------------------------
EMail:[email protected] 请给我一个与您交流的机会!
datepart
如果时间超过30天是否显示月??
如果时间不足24小时是否显示天??
select @h = datediff(hh,'2006/11/19 20:31:37','2006/11/21 21:31:38')
declare @d int
set @d = @h/24
set @h = @h % 24
select case @d when 0 then CAST(@h AS varchar(10)) + '小时' else
CAST(@d AS varchar(10)) + '天' + CAST(@h AS varchar(10)) + '小时'
end
declare @b smalldatetime
set @a = '2006/11/21 21:31:38'
set @b = '2006/11/19 20:31:38'
print convert(varchar(4),datediff(dd,@b,@a)) + '天' + convert(varchar(4),datediff(hh,@b,@a) - datediff(dd,@b,@a) * 24) + '小时'
即:
TimeSpan d = d1 - d2;
int day = (int)d.TotalDays;
int hour = (int)((d.TotalDays - day) * 24);
string s = day.ToString() + "天 + " + hour.ToString() + "小时";
这里如果超过30天用月来显示有点麻烦,因为这个与最小的那个时间是有关的。
2006/11/21 21:31:38和2006/11/19 20:31:38这两个时间是我随便的写的,也就是说应该大体是select time1-time2
from 数据表
其中time1 ,time2是两个字段
不足24小时显示为 0天+**分