日期的比较问题?----搜索??!!

tianlangxing2002 2002-05-16 02:50:25
我在做一个搜索的东东,但是我要实现按日期搜索,我发现日期不能比较
怎么回事??
我用的是ACCESS数据库+PWS
我的SQL如下:
sql="select * from table where time1>'"&2000-1-2&"'"
注:time1 为 table 的一个字段
如果我把数据库中的日期改为text结构,我搜出来得东东不对,
它默认10小于‘1 ’ (1+空格)
我该怎么办???
各位大虾!!!!
help me,please?!!!!
...全文
13 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qiushuiwuhen 2002-05-16
如果数据库中是starttime, endtime,则

t1=request("starttime")
t2=request("endtime")
sql="select * from table where (starttime>#" & t1 & "# and endtime<#" & t2 & "#)"

回复
qiushuiwuhen 2002-05-16
t1=request("starttime")
t2=request("endtime")
sql="select * from table where (time1>#" & t1 & "# and [time]<#" & t2 & "#)"

time是关键字,所以要加[]


回复
tianlangxing2002 2002-05-16
我要实现的是:具体情况::::从表中取得开始与终止时间 然后根据他们搜索:
t1=request("starttime")
t2=request("endtime")
sql=select * from table where (time1>t1 ang time<t2)
我的数据库上starttime, endtime都为时间型,但我一运行就出错:)
我该怎么办???!!!
回复
tianlangxing2002 2002-05-16
我要实现的是:具体情况::::从表中取得开始与终止时间 然后根据他们搜索:
t1=request("starttime")
t2=request("endtime")
sql=select * from table where (time1>t1 ang time<t2)
我的数据库上starttime, endtime都为时间型,但我一运行就出错:)
我该怎么办???!!!
回复
qiushuiwuhen 2002-05-16
strDate="2000-1-2"
sql="select * from table where time1 >#" & strDate & "#"
回复
BrightEye 2002-05-16
按字符比较的话,10<1 (1+空格),因为0的ascii码比空格的ascii码大.
你可以这样呀,对于日期/时间型字符:
sql="select * from table where time1>'#2000-1-2#'"

回复
anakine 2002-05-16
用datediff、datepart函数或是用关系运算符来比较

例:
1.datediff('d',starttime,now())<=10 '10天内
2.starttime>=dateadd('d',-weekday(now()),now()) and starttime<now() '本周内
回复
cmsoft 2002-05-16
sql="select * from talname where time1>#2000-1-2# "
看错了,这才是你要的东东
回复
cmsoft 2002-05-16
我告诉你一个函数:

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

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
DateDiff 函数的语法有以下参数:

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

设置 描述
yyyy 年
q 季度
n 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
m 分钟
s 秒

firstdayofweek 参数可以有以下值:

常数 值 描述
vbUseSystemDayOfWeek 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 由在新的一年中第一个完整的周开始。

说明
DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。

要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1。

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

firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。

如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。

在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。

下面的示例利用 DateDiff 函数显示今天与给定日期之间间隔天数:

Function DiffADate(theDate)
DiffADate = "从当天开始的天数:" & DateDiff("d", Now, theDate)
End Function
回复
wangfei2428 2002-05-16
sql="select * from table where time1>#2000-1-2# "


回复
bolly 2002-05-16
sql="select * from table where time1 >#" & 2000-1-2 & "#"
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

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