根据这个表的字段,怎样查询2003-10-2 9:00:00 到2003-10-3 7:30:00的记录呢?

yingxiong 2003-10-09 03:08:35
表的结构如下:
id rdate rtime
1 2003-10-2 8:00:00
2 2003-10-2 9:10:00
3 2003-10-2 12:00:00
4 2003-10-3 6:00:00
5 2003-10-3 8:00:00

是sql 2000我怎么查询 2003-10-2 9:00:00 到2003-10-3 7:30:00之间的记录呢?
...全文
69 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingxiong 2003-10-09
  • 打赏
  • 举报
回复
谢谢各位,以后还请多多指教。散分。
lxhong1980 2003-10-09
  • 打赏
  • 举报
回复
where rdate between strtodatetime(formatdatetime('yyyy-mm-dd','2003-10-02 9:00:00 '))and strtodatetime(formatdatetime('yyyy-mm-dd','2003-10-03 7:30:00'));
yingxiong 2003-10-09
  • 打赏
  • 举报
回复
dulei115() select * from tbtable where (rdate = '2003-10-2' and rtime > '9:00:00')
or(rdate = '2003-10-3' and rtime < '7:30:00') 不对的
yingxiong 2003-10-09
  • 打赏
  • 举报
回复
解决了。
SELECT *
FROM tbtable
WHERE (CONVERT(varchar(10), rdate, 126) + ' ' + CONVERT(varchar(10), rtime, 108)
>= '2003-10-02 09:00:00') AND (CONVERT(varchar(10), rdate, 126)
+ ' ' + CONVERT(varchar(10), rtime, 108) <= '2003-10-03 07:30:00')
hahahahaanni 2003-10-09
  • 打赏
  • 举报
回复
where rdate between formatdatetime('yyyy-mm-dd','2003-10-02')+'9:00:00' and formatdatetime('yyyy-mm-dd','2003-10-03')+'7:30:00'
dulei115 2003-10-09
  • 打赏
  • 举报
回复
应该就是这样的呀:(复制的前一贴的)
select * from tbtable where (rdate = '2003-10-2' and rtime > '9:00:00')
or(rdate = '2003-10-3' and rtime < '7:30:00')
mudy718 2003-10-09
  • 打赏
  • 举报
回复
where (rdate >= 2003-10-2 and rtime >= 9:00:00)or(rdate <= 2003-10-3 and rtime <= 7:30:00)
yingxiong 2003-10-09
  • 打赏
  • 举报
回复
dulei115() :
不是啊,应该是有这三条记录:
2 2003-10-2 9:10:00
3 2003-10-2 12:00:00
4 2003-10-3 6:00:00

我的表就这三个字段的。查询的时候就是这个条件。
yingxiong 2003-10-09
  • 打赏
  • 举报
回复
lufancy(聆雨)
您好,具体是怎么写呢?请指教。
dulei115 2003-10-09
  • 打赏
  • 举报
回复
你的数据库中满足条件的是不是本来就只有那两条:
4 2003-10-3 6:00:00
5 2003-10-3 8:00:00
louiedf 2003-10-09
  • 打赏
  • 举报
回复
将rdate 和rtime连接 中间有个空格
然后转换成date型
比较时间就可以了
dulei115 2003-10-09
  • 打赏
  • 举报
回复
select * from tbtable where (rdate='2003-10-2' and rtime >'9:00:00')or(rdate='2003-10-3' and rtime <'7:30:00')
yingxiong 2003-10-09
  • 打赏
  • 举报
回复

但就这样一句就:(rdate>='2003-10-2' and rtime >'9:00:00')就查出记录:
4 2003-10-3 6:00:00
5 2003-10-3 8:00:00

如果只是:rdate>='2003-10-2' 就查询所有记录。

如果(rdate>='2003-10-2' and rtime >'1:00:00')就查出记录:
4 2003-10-3 6:00:00
5 2003-10-3 8:00:00

dulei115 2003-10-09
  • 打赏
  • 举报
回复
不好意思,说错了!应该要单引号
yingxiong 2003-10-09
  • 打赏
  • 举报
回复
dulei115() 兄弟的方法不行,这样查询的结果是:
4 2003-10-3 6:00:00
5 2003-10-3 8:00:00

dulei115 2003-10-09
  • 打赏
  • 举报
回复
时间常量不能用单引号括起来
yingxiong 2003-10-09
  • 打赏
  • 举报
回复
rdate,rtime都是tdatetime类型。:)
我试dulei115() 的方法。
tiexinliu 2003-10-09
  • 打赏
  • 举报
回复
如果rdate, rtime是varchar什么的就应该可以了.
dulei115 2003-10-09
  • 打赏
  • 举报
回复
(rdate=2003-10-2 and rtime >9:00:00)or(rdate=2003-10-3 and rtime <7:30:00)
yingxiong 2003-10-09
  • 打赏
  • 举报
回复
我写了这条语句:select * from tbtable where rdate+rtime>='2003-10-2 9:00:00' and rdate+rtime<='2003-10-3 7:30:00'
结果查不到记录。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧