这问题用sql语句怎么写?

sp5guy 2003-04-18 11:14:49
想实现如下功能:
用户在窗口输入要查询的日期,如在两个edit中分别输入2002-03-01和2002-03-05,然后通过ado控件在数据库中查找对应范围内的记录,相应的sqlserver2000中数据库为mydb,表为data,想查找“时间”字段下2002-03-01到2002-03-05的纪录,遇到的麻烦是“时间”字段下存的都是日期时间型记录(如2000-01-01 12:00:00),请问用sql语句如何写?换句话说,也就是如何忽略“时间”字段里的时间部分而对日期部分进行查找?
...全文
93 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjlsmail 2003-04-19
  • 打赏
  • 举报
回复
没有 ; // Sql Server 2000 中时间可以作为字符串处理也可以比较大小

'2003-01-18'指 '2003-01-18 00:00:00.000'
redwh 2003-04-19
  • 打赏
  • 举报
回复
wjlsmail:

我现在没有数据!
redwh 2003-04-19
  • 打赏
  • 举报
回复
between '2003-01-18' and '2003-05-18' 和
<= '2003-01-18' and >='2003-05-18' 有区别吗 ??

'2003-01-18'到底是指的 '2003-01-18 23:59:00.000' 还是 '2003-01-18 00:00:00.000'
cqbonny 2003-04-19
  • 打赏
  • 举报
回复
怎么会呢,应该可以呀,要么就是吧数据库里面的字段的值取前几位用cast转换成为varchar然后再进行比较,应该可以吧,我就是这样的
wjlsmail 2003-04-19
  • 打赏
  • 举报
回复
to : redwh(第一滴泪)

您将数据给我我试一下
wjlsmail 2003-04-19
  • 打赏
  • 举报
回复
这只是一个处理方式
--------------------------------
有的时间要绕开的

2003-04-18 23:36:14.170 1
2003-01-18 23:36:18.000 2
2003-05-18 23:36:29.000 3
2003-04-18 23:36:30.833 4
2003-04-18 23:36:32.677 5


between '2003-01-18' and '2003-05-18' 将包含 2003-01-18 23:36:18.000
between '2003-01-19' and '2003-05-18' 就可以了
redwh 2003-04-19
  • 打赏
  • 举报
回复
我也遇到了这样的问题,数据库里面全是 2000-01-01 00:00:00
按 wjlsmail(计算机质子) 的方法查询不完全。
wjlsmail 2003-04-18
  • 打赏
  • 举报
回复
Sql.Text := 'Select * from mydb where Field Between ''' + DateTimeToStr(StrToDate(Edit1.Text)) + ''' and ''' + DateTimeToStr(StrToDate(Edit2.Text)) + '''' ;
hanzq 2003-04-18
  • 打赏
  • 举报
回复
日期字段改为VARCHAR
再用BETWEEN 语句写

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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