Asp中多个日期,求最大值的问题

jimstory 2008-04-12 02:58:46
表中存有date1到date7,7个日期字段,有可能值为空。jjdate为另一个日期字段,我想在jjdate中存入7个日期中的最大值,不知道怎么实现?求高手帮忙。
rs("date1")=request.Form("date1")
rs("date2")=request.Form("date2")
rs("date3")=request.Form("date3")
rs("date4")=request.Form("date4")
rs("date5")=request.Form("date5")
rs("date6")=request.Form("date6")
rs("date7")=request.Form("date7")
rs("jjdate")=????
...全文
72 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
飞天神笔 2008-04-12
7楼的,估计你没注意楼主的代码是从前一个表单传递过来7个日期

而不是你的从数据库中读出最大日期啊。


-----------------------------------------------------------
爱找房(http://www.izfang.com)
 我的个人网站,个人免费的房屋租赁网站,已从技术上防中介在“个人房源”栏捣乱,大家要多多捧场哦。
回复
文盲老顾 2008-04-12
update tablename as a set jjdate=(select top 1 MaxDate from (select data1 as MaxDate from tablename where id=a.id and not data1 is null union select data2 as MaxDate from tablename where id=a.id and not data2 is null union select data3 as MaxDate from tablename where id=a.id and not data3 is null union ..... ) as b order by 1 desc)
回复
rs("date1")=request.Form("date1") 
rs("date2")=request.Form("date2")
rs("date3")=request.Form("date3")
rs("date4")=request.Form("date4")
rs("date5")=request.Form("date5")
rs("date6")=request.Form("date6")
rs("date7")=request.Form("date7")
Dim maxDate,tempDate:maxDate=""
For i=1 To 7
If trim(rs("date"&i)&"")<>"" And IsDate(rs("date"&i)) Then'防止为空和不是cdate能转换的类型时防止出错
If maxDate="" Then
maxDate=CDate(rs("date"&i"))
Else
tempDate=CDate(rs("date"&i))
If tempDate>maxDate Then maxDate=tempDate
End If
End If
Next
rs("jjdate")=maxDate
回复
可以这么用,自己写一个函数比较
回复
hookee 2008-04-12

<%
arr = Array(#2008-1-3#,#2008-12-2#,#2008-3-4#,#2008-9-8#,#2008-1-1#,#2008-7-6#)
Set rs = CreateObject("ADODB.RecordSet")
rs.CursorLocation=3
rs.Fields.Append "dt",7
rs.Open
For i=0 To UBound(arr)
rs.AddNew
rs("dt") = arr(i)
Next
rs.sort="dt DESC"
rs.MoveFirst
Response.Write "最大:" & rs(0)
rs.Close
Set rs = Nothing
%>
回复
md5e 2008-04-12
for i=1 to 7
maxday=rs("date" & trim(i))
if maxday<>"" and not isnull(maxday) then
exit for
end if
next

for j=i to 7
if rs("date"& trim(j))<>"" and not isnull(rs("date"& trim(j))) then
if Cdate(rs("date"& trim(j)))>Cdate(maxday) then
maxday=rs("date"& trim(j))
end if
end if
Next
rs("jjdate")=maxday
回复

function max(info)
arr=split(info,",")
max=cdate(arr(0))
for i=1 to ubound(arr)
if cdate(arr(i))>cdate(max) then
max=cdate(arr(i))
end if
next
end function

str=""&request("date1")&","&request("date2")&","&request("date3")&","&request("date4")&","&request("date5")&","&request("date6")&","&request("date7")&""

rs("jjdate")=max(str)
回复
转换为日期类型然后比较下

回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-12 02:58
社区公告
暂无公告