高手帮我看看,对错,为什么错?

mailto520 2008-04-09 03:14:42
今天我在写一个查询两个日期中间的所有数据时,发现一个怪问题
kename = trim(Request("kename"))
date1=FormatDateTime(trim(request("date1")),vbGeneralDate)
date2=FormatDateTime(trim(Request("date2")),vbGeneralDate)



1、
Select * From [takechu] Where corp_code='“&kename“' and (take_date  between '”&date1&"' and '"&date2&"')


2、
Select * From [takechu] Where corp_code='“&kename“' and DateDiff(d,[take_date],'"&date1&"')<=0 and DateDiff(d,[take_date],'"&date2&"')>=0


3、
Select * From [takechu] Where corp_code='“&kename“' and ([take_date]>='"&date1&"' and [take_date]<='"&date2&"') 


说明:1,3查询出来的结果都有漏掉数据,2查询出来的结果正确,无漏数据。take_date为datetime数据类型
环境:数据库ms_sql2000个人版,操作系统windowsXP,IIS5.0

问题:请问为什么1,3有漏掉数据?这三种查询方法哪个最快?各有什么优劣?
...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlelam 2008-04-09
  • 打赏
  • 举报
回复
1的同理
littlelam 2008-04-09
  • 打赏
  • 举报
回复

Select * From [takechu] Where corp_code='“&kename“' and ([take_date]>='"&date1&"' and [take_date]<'"&date2+1&"')
<!--2008-10-29 10:08:34.480 是大于 2008-10-29的所以要加一天-->
wackyboy 2008-04-09
  • 打赏
  • 举报
回复
2008-10-29 10:08:34.480

2008-10-29

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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