ASP 判断数值大小的问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:47:08
以下代码。
yTime是从上一级页面传送过来的时间(单位:秒),kshijian读取数据库理的时间(*3600是把时间换成“秒”),接下来判断yTime和Kshijian的大小。
问题就是:传送过来的时间ytime比kshijian小的时候,判断结果竟然是“您已学完该课程”,也就是说ytime比kshijian大(比如:ytime=120,kshijian=3600的时候)。
有没有高人帮我看看是什么原因啊?谢谢
<%
Dim yID,yTime
yID = Request.QueryString("ID")
yTime = Request.QueryString("time")

dim rs3,sql3,kshijian

Set rs3 = Server.CreateObject("ADODB.Recordset")
sql3="select * from StudyMaterial where id=" & yID
rs3.open sql3,conn,1,1
kshijian=rs3("shijian")*3600

if yTime > kshijian then
%>
<p>您已经学完该课程</p>
<%
else
%>
<p>本课程您未学习完!请继续学习</p>
<%
end if
rs3.close
%>
kshijian不是时间类型,这句:kshijian=rs3("shijian")*3600 中的shijian本身就是一个数字型,(比如值为1就代表一个小时),而kshijian就是1小时再乘以3600,得出的结果就是3600秒。而
yTime = Request.QueryString("time&quo

if yTime > kshijian then

上面这一句中:
yTime的类型是字符串,而kshijian是时间类型,不能直接进行大小比较!

********************************

从地址栏获取得参数值都是字符串类型,虽然它表面上是数字,但是它的数据类型是字符串,你用response.write(typename(yTime))输出一下,如果输出“string”则数据类型是字符串,如果是“number”则是数字类型,使用数值大小比较时必须两者都是“number”类型才行的!

用这句试试:if cInt(yTime) > cInt(kshijian) then

从地址栏获取得参数值都是字符串类型,虽然它表面上是数字,但是它的数据类型是字符串,你用response.write(typename(yTime))输出一下,如果输出“string”则数据类型是字符串,如果是“number”则是数字类型,使用数值大小比较时必须两者都是“number”类型才行的!