ASP和ACCESS中日期时间比较 ' H* X1 m* W3 C6 x# e& L+ R2 }: u
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大? 在ASP中先做一个小测试,就是比较两个日期,代码如下: <%="2007-2-1" > "2007-10-01"%> 结果显示为:True 奇怪了,为什么大日期还小呢?把日期的双引号去掉,还是返回:True 那是怎么回事呢?原来是单纯时间或用双引号括起来,在ASP中不代表时间,时间需要用两个井号(#)括起来,如下: <%=#2007-2-1# > #2007-10-01#%> 这回就返回False了,证明时间比较已经正确。 所以在ASP中需要用井号括起来。ASP还有其他日期函数用来做比较的,那就是:DateDiff,语法如下: DateDiff( 间隔字符, 日期1, 日期2 [,firstdayofweek[, firstweekofyear]]) 一般使用 DateDiff( 间隔字符, 日期1, 日期2) 就足够了。 解释一下:此函数返回间隔的日期或时间,返回的是年、月、日就要设置间隔字符了,比如间隔字符为:"yyyy" 就表示比较年份, "d" 比较日期,"m" 比较月份,如果日期1晚于日期1,那么会返回负数。 举个例子: <%=DateDiff( "d", #2008-1-10#, #2008-1-2#)%> 结果是:-8 ACCESS查询中怎么写日期比较的SQL语句? 1、首先在设计ACCESS数据表时,日期字段必须为:日期/时间,如果字段类型为字符等,日期比较时会不正确。 2、SQL语句例子(查找比指定日期后的记录): 代码一 select * from 表名 where DateDiff( "d", 日期字段列名, #指定日期#) <= 0 代码二 select * from 表名 where 日期字段列名>#指定日期# 注意指定日期两边要用井号括起来的。
- g1 L1 K4 Q: N7 G7 q2 B7 b. S9 M: J$ @/ C3 X3 s/ D- ~) \
+ _! L8 q9 [) ^5 `6 G7 e: H v
我要实现一个表单输入像"1963-7-13 17:00:00"怎么判断,最重要的问题是 我要怎么才能验证表单里面的时间不能小于现在的时间。也就是不能小于now(),谢谢大家了。解决以后你可以向我提追加分的要求。 1 U9 e8 ~6 e+ G: D- Q) `$ |
字符串转化为时间类型,在ASP里用强制类型转换cdate
请看例子:
aaa="2963-7-13 17:00:00"
bbb=now()
if cdate(aaa)>bbb then response.Write("表单的时间大") else Response.write("表单的时间小") end if
# B, U/ G% |6 I/ k! e4 d+ ]4 D
4 R( a- W' `5 j( T5 E9 j0 Q8 y3 s' g* K( f1 N2 e
; h: D/ s; H9 S6 X1 B. V[求助]网页中某会员生日与系统时间相等时,弹出对话框( n* o9 T$ k: R, F9 a
6 K, V2 J$ y# H& S$ f
我有一段代码可以实现: 当网页中某会员生日与系统时间相等时,可以弹出一个对话框 但是当网页中没有会员生日与系统时间相等时,怎么显示是空白啊,就是什么都没有? 不知道哪里出问题,或者大家还有更好的方法(有代码最好了) 我是新手分数不多,大家帮帮忙啊!!! <!--#indlude file="coon.asp"--> <% set rs=server.createobject("adodb.recordset") sql="select * from user " rs.open sql,conn,1,1 %> <html> <head> <script> var theDate = new Date(" <%=rst("user_date")%>".replace(/-/g,"/")); var flag = true; function init(){ var now = new Date(); if(now.getMonth() == theDate.getMonth() && now.getDate() == theDate.getDate()){ alert(user_name+'生日快乐'); flag = false; } if(flag){ setTimeout("init()",1000); } } </script> </head> <body > <div id="div1"></div> </body> </html> |