智睿软件_技术交流论坛综合站长Web程序开发 → asp datediff函数,如何引用数据库中参数


  共有22307人关注过本帖树形打印

主题:asp datediff函数,如何引用数据库中参数

帅哥哟,离线,有人找我吗?
zhirui
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:520 积分:8740 威望:0 精华:5 注册:2009-07-07
asp datediff函数,如何引用数据库中参数  发帖心情 Post By:2010-12-08 16:28:21

在SQL中的正确写法是:
sql="select * from [clients] where datediff(month,lastlogintime,getdate())>3"
'注意这里month没有使用任何的引号,同时使用的是getdate而不是now

在ACCESS中的正确写法是:
sql="select * from [clients] where datediff('m',lastlogintime,now())>3"
'这里的简写的m使用单引号,同时使用参数now


网络投票评选管理系统,投票评选的合作伙伴 支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
zhirui
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:520 积分:8740 威望:0 精华:5 注册:2009-07-07
  发帖心情 Post By:2010-12-08 16:28:56

DateDiff函数

功能:返回两个日期之间的时间间隔。

语法:DateDiff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]])


语法参数:

interval 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1, date2 必选。日期表达式。用于计算的两个日期。
firstdayofweek 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分

参数设置:

interval 参数可以有以下值:
设置         描述
yyyy         年
q              季度
m             月
y              一年的日数
d             日
w             一周的日数
ww           周
h             小时
m            分钟
s             秒

firstdayofweek 参数可以有以下值:

常数 值 描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六


firstweekofyear 参数可以有以下值:

常数 值 描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。

说明:

如果 date1 晚于 date2,则 DateDiff 函数返回负数。

例子:

比如计算我的年龄:<%=datediff("yyyy",#1984-3-13#,now())%>  运算后的结果:22
如果你想查前一天的,就:  
  mytime=rs("time")   '//数据库中保存时间  
  nowtime=now()   '//当前时间  
  if   datediff("d",mytime,nowtime)<1   then  
        .....  
  end   if 

网络投票评选管理系统,投票评选的合作伙伴 支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
zhirui
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:520 积分:8740 威望:0 精华:5 注册:2009-07-07
  发帖心情 Post By:2011-02-14 16:14:30

方法如下:
MS SQL数据库:
SQL="... and Ap_addtime between '"&request.Form("starttime")&"' and '"&DateAdd("d",1,""&request.Form("endtime")&"")&"' ..."

Access数据库:
SQL="... and Ap_addtime between #"&request.Form("starttime")&"# and #"&DateAdd("d",1,""&request.Form("endtime")&"")&"# ..."


今天在做后台定单搜索的时候,遇到了时间段搜索,觉得初学的人可能会犯两个错误,在此列出,希望可以减少你宝贵的学习时间

1。把日期当字符串来操作,其实日期和数字一样,在SQL语句中,都不能加'字符串',否则会出现语法错误

2。选择某个日期中间的记录可以用between and 而不是用< > =等符号,而且日期之间也有讲究,access数据库的日期间用#日期#隔开,mssql用'单引号,如:

timestr类型为日期/时间

Dim dateStr1,DateStr2
DateStr1="2006-8-10"
DateStr2=Date()
sql="select * from Table where timestr between #"&DateStr1&"# and #"&DateStr2&"#"



ASP比较时间的SQL语句,其中d为天数!

access
select * from [table] where datediff('d',时间字段,Now())=0




Sql Server
select * from [table] where datediff(d,时间字段,GetDate())=0


考试管理系统,适合中小学校,驾校,技术认证考试 支持(0中立(0反对(0回到顶部