日期:2014-05-17  浏览次数:20952 次

asp DateDiff时间差问题~ 帮忙解决一下
大家看看这段代码 :

 <% 
dim timers,timestr,time_now 
time_now=now() 
timestr="select * from student where studyid='"&session("studyid")&"'" 
set timers=server.CreateObject("adodb.recordset") 
timers.open timestr,Conn,1,3 
timers("t")=timers("t")+datediff("n",session("time1"),time_now)

'累计时间timers("time")=原有时间+(当前时间 - 初始时间),datediff()是一个计算时间差值的函数,第一个参数是设置差值的单位,"s"表示差值单位为秒,第二个参数是时间1,第三个参数是时间2,差值为时间2减时间1; 
timers.update 
timers.close 
set timers=nothing 
Conn.close 
set Conn=nothing 
session("time1")=now() '从新设置初始时间为当前时间,为下一次计算作准备 
%> 

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<meta http-equiv="refresh" content="10"> 
<title>refresh</title>
</head>

问题是这样的 ,我在做用户的网上停留时间(停留时长),在数据库 t 字段里获取 在线停留的累计时间 ,t 是 我设了int类型, t 里面的数字就是 分钟 如: 12

但是 在线停留一段时间后 字段里面的数字是 一个很长的数字 比如:3545500576 

高手帮忙我解决一下 ~ 谢谢~

我怎么获取真正的 停留时长?如:50 ,20等等 是不是哪里有问题?  

timers("t")是累计时间 ,是不是这里有问题? 

<meta http-equiv="refresh" content="10"> 这个每十秒给数据库发送一次请求。

------解决方案--------------------
C# code

timers("t")=timers("t")+datediff("n",session("time1"),time_now)

这改成 timers("t")= = clng(timers("t"))+datediff("n",session("time1"),time_now)
试试  类型转换成数字,你从数据库里面读取出来的 timers("t") 是字符类型,要转换成数字类型才能进行数学运算