日期:2014-05-19  浏览次数:20439 次

两个时间相减,返回天数
数据库中两个日期字段,类型都为DATATIME类型

它们的值例如:2007-03-27   13:04:55
2007-04-27   13:04:55
我想让这两个日期相减,得到他们之间差多少天,怎么计算?
string   OfferTime1   =   Convert.ToString(Convert.ToDateTime(sdr[ "OfferTime "].ToString())-Convert.ToDateTime(sdr[ "OfferAddTime "].ToString())).ToString().Trim();
我这样写,返回值会到时分秒,我不要秒,只要天数就行了

这个怎么写?

------解决方案--------------------
先转换成时间类型,再比较
------解决方案--------------------
再取天数就可以了撒
------解决方案--------------------
查询的时候直接获取阿
select abs(datediff(dd,date1,date2)) from table
------解决方案--------------------
(Convert.ToDateTime(sdr[ "OfferTime "])-Convert.ToDateTime(sdr[ "OfferAddTime "])).days()
------解决方案--------------------
TIMESPAN变量....days()就可以获取.....
------解决方案--------------------
DateTime t=DateTime.Now;
TimeSpan d = t-new DateTime(2007,5,3);
Response.Write(d.Days.ToString());
------解决方案--------------------
string OfferTime1 = Convert.ToString(Convert.ToDateTime(sdr[ "OfferTime "].ToString().substring(8,2))-(Convert.ToDateTime(sdr[ "OfferAddTime "].ToString())).ToString().substring(8,2);
------解决方案--------------------
直接使用sql里的时间函数是最简单的
------解决方案--------------------
你在之前从数据库中取值的时候用datetime.now.date这样取得值就不到时间了
然后计算时间差
dim restday as Timespan=OfferTime.subtract(OfferAddTime)

那么restday的值便是两个的差值
------解决方案--------------------
那时估计你的格式有时候写的有问题吧

------解决方案--------------------
while(sdr.Read())
{
str2 = sdr.GetValue(0).ToString();
str1 = sdr.GetValue(1).ToString();
}
sdr.Close();
con.Close();

DateTime dt1 = DateTime.Parse(DateTime.Parse(str1).ToString( "yyyy-MM-dd "));
DateTime dt2 = DateTime.Parse(DateTime.Parse(str2).ToString( "yyyy-MM-dd "));
System.TimeSpan ts = (dt1 - dt2);

int i= ts.Days;
------解决方案--------------------
TimeSpan ts= Convert.ToDateTime(sdr[ "OfferAddTime "].ToString()).Subtract(Convert.ToDateTime(sdr[ "OfferTime "].ToString()));
//ts.Days就这个
------解决方案--------------------
DateTime dt=new DateTime();
dt=DateTime.Parse( "2007-03-17 13:04:45 ");
DateTime dt2=new DateTime();
dt2=DateTime.Parse( "2007-04-27 13:04:55 ");
TimeSpan ts=dt2-dt;
this.linkLabel1.Text=ts.Days.ToString();
------解决方案--------------------
datediff(day,date1,date2)