海外邮件中继,海外退信中继,美国高速VPS,不限流量VPN,邮局维护和管理,邮件网关,EMOS邮件中继,POSTFIX邮件中继,Winwebmail邮件中继,Winmail邮件中继,DBMail邮件中继,JDMail邮件中继,Exchange邮件中继,MDaemon邮件中继 淘宝店:http://shantan.taobao.com 云邮科技官网:www.yunrelay.com
【字体设置:大 中 小】
今天一网友跟我反映说我上次给的DateDiff函数的语句出现了错误,出现了
错误类型:
Microsoft VBScript 编译器错误 (0x800A03EE)
缺少 ')'
的情况,于是我自己也在本地测试了一下,还真的出现这样的问题。后来发现是因为引号以及参数的问题导致的,在用这个函数的时候,如果直接用conn.execute执行的话,要用单引号模式,例如:
conn.execute("delete * from 表 where DateDiff('h',时间字段,now())<=24 ")
删除表中一天前的所有记录,如果你用双引号则会报错了,同时,它直接用表中的字段即可,无需调用rs(“表中字段”)的形式。
以上是ACCESS数据中的应用的情况。SQL中有所不同:
Access中:DateDiff('d',Time1,Time2)
Sql中:DateDiff(d,Time1,Time2)‘注意这里没有引号的
下面是我自己的sql语句
'判断数据库类型
IF IsSqlDataBase = 1 Then
Conn.execute("Delete from lyt_log_info where datediff(day,logintime,getdate())>=3 ")
Else
Conn.execute("Delete from lyt_log_info where datediff('d',logintime,now())>=3")
End IF
sql中d 或者day的引号不要 注意后面获得系统时间的函数是不同的
如在access中使用
Conn.execute("Delete from lyt_log_info where datediff(day,logintime,getdate())>=3 ")
则会提示
Microsoft JET Database Engine (0x80040E14)
表达式中 'getdate' 函数未定义。
如在access中day或者w y等不加引号,会提示至少没有一个参数被指定
例子:
以下为代码部分:
Response.write "离2100-1-1还有"&datediff("d",now(),"2100-1-1")&"天"
距离某一天还有多少天,你可以修改下参数 ""d"" 算出距离某天还有多少月 多少week 多少 hour
注:DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。为了计算 date1 与 date2 相差的日数,可以使用“一年的日数”(y) 或“日”(d)。当 interval 是“一周的日数”(w) 时,DateDiff 返回两日期间的周数。如果 date1 是星期一,DateDiff 计算到 date2 为止的星期一的个数。这个数包含 date2 但不包含 date1。不过,如果 interval 是“周”(ww),则 DateDiff 函数返回两日期间的“日历周”数。由计算 date1 与 date2 之间星期日的个数而得。如果 date2 刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论 date1 是否为星期日,都不将它算进去。如果 date1 比 date2 来得晚,则 DateDiff 函数的返回值为负数。firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。如果 date1 或 date2 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date1 或 date2 用双引号 (" ") 括起来,且年份略而不提,则在每次计算表达式 date1 或 date2 时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。在计算 12 月 31 日和来年的 1 月 1 日的年份差时,DateDiff 返回 1 表示相差一个年份,虽然实际上只相差一天而已。
发表评论 - 不要忘了输入验证码哦!