当前位置: 代码迷 >> ASP.NET >> 两个时间相减,返回天数,该如何解决
  详细解决方案

两个时间相减,返回天数,该如何解决

热度:6038   发布时间:2013-02-26 00:00:00.0
两个时间相减,返回天数
数据库中两个日期字段,类型都为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)
  相关解决方案