大家帮帮忙,下面这个SQL语句怎么写?(50分)

  • 主题发起人 主题发起人 jnshy
  • 开始时间 开始时间
J

jnshy

Unregistered / Unconfirmed
GUEST, unregistred user!
access数据库中有两个字段,一个保存日期,另一个保存时间,我想查询某个时间段的数据
,比如查询2006年7月1号18点至2006年8月1号18点之间的数据,SQL语句该怎么写呢?
 
其实你可以把日期和时间放在一个字段的。
如果放一起,很好写,使用简单的where就可以实现。
分开了有些难处理了。
 
是啊,感觉也是有点麻烦了,不想改结构了,
我想总会有办法吧,请高手支招。
 
你的那俩个是字符串字段么?格式是什么样子的?
 
select * from table where (date1>#2006-7-1# and time1>18:00) and (date2<#2006-8-1# and time2<18:00)
 
SELECT *
FROM bb where iif(date = #2006-07-01#,time > #18:00#,date > #2006-07-01#) and iif(date = #2006-08-01#,time < #18:00#,date < #2006-08-01#)
 
Select * from table1
where (buytime between '2002-01-01' and '2002-06-30')
and (timevalue(buytime) between '8:00:00' and '10:00:00');
 
两个字段都是时间日期型的,不是字符串,一个设置为日期,格式为2006-08-01
另一个设置为时间型的,格式为18:10:00
另外还有一个问题,怎样查询access数据库的时间字段呢?我用下面的语句查询总是提示数据类型不匹配。
select * from table1 where time > '18:00:00' and time < '23:00:00'
 
你仔细想想条件, 日期和时间分开会有问题的,
比如这个条件,where (date1>#2006-7-1# and time1>18:00) and (date2<#2006-8-1# and time2<18:00)
2006-7-2 12:00这个时间符合条件吗?
 
[:D]难道我的不够师.我的不对吗?
to:jnshy
ACCSEE中时间要用#号的.
 
是啊,日期和时间分开确实不合适,暂时不想改了,先凑合着吧。
我在时间上加#号试过了,也是提示类型不匹配。
to mydecpu:你的答案非常师,很对,先谢谢了,给分。这种用法我没见过,你的答案中,iif代表什么?
hzjone对时间字段的用法是对的。
其他的好像有点问题,不符合要求。
 
哈哈.一时把日期写成SQL SERVER...
 
to hzjone
我按你写的试了一下,编译时没错,但是结果好像不对,
timevalue(buytime)返回的什么值啊?
 
to jnshy
iif 就相当if的意思,iif(条件,当真时执行,不真时执行)
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
927
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部