between and 问题,急求 sqlserver用between '2011-8-8' and'2011-8-8' 时,根本查不出数据,就算是between '2011-8-8' and'2011-8-9' ,但2011-8-9的数据查出来也不对,怎么解决,急求,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select *from tbwhere convert(varchar(10),日期字段,120) between '2011-08-08' and '2011-08-09' col between '2011-8-8' and'2011-8-9'==col >= '2011-8-8' and col <= '2011-8-9' 注意col <= '2011-8-9'并不是'2011-8-9'这天的数据,而是只有'2011-8-9'这个时间点的数据包含,要精确找出'2011-8-9'这天所有数据应该col >= '2011-8-9' and col < '2011-8-10'不用1楼的方法是考虑效率,函数会使得索引效能下降 between '2011-8-8' and'2011-8-8'会隐式转换为between '2011-08-08 00:00:00' and'2011-08-08 00:00:00'是查不出来数据的改为'2011-8-9'查出来不对,是什么意思,你把话说完整了好不好 declare @date datetimeset @date = '2011-08-08'select @date --你看一下这个结果是什么,然后看看这样你between '2011-08-08' and '2011-08-08' 的结果 不是问题,搂主对datetime类型没有很好理解是原因 col >= '2011-8-8' and col <= '2011-8-9' declare @date datetimeset @date = '2011-08-08'select @date select convert(varchar(10),@date,120)--看一下这两者有什么区别 谢谢!各位的方法我都试了, AcHerat的把时间给convert了就什么也查不出了,NBDBA的用法和between and 的用法是一样的,也不可以,我也试过between '2011-8-4 00:00:00' and '2011-8-4 23:59:59'但它连8-5的也查出来了,但是8-5号的不对,怎么办?急求! NBDBA、第二次说的正好解决了sqlserver 的between and 两端值取不到的问题,太感谢了,非常感谢大家的帮忙。 是smalldatetime类型的,有关系吗?请说一下,谢谢! 字符串转换为datetime或smalldatetime类型,是有精度差别的数据类型 范围 精确度 datetime 1753 年 1 月 1 日到 9999 年 12 月 31 日 3.33 毫秒 smalldatetime 1900 年 1 月 1 日到 2079 年 6 月 6 日 1 分钟按smalldatetime类型 between '2011-8-4 00:00:00' and '2011-8-4 23:59:59'等于between '2011-8-4' and '2011-8-5' 默认 是 00:00:00的。所以在对时间做处理的时候,and 后面的时间(enddate)往往在程序内部会加一天enddate.DateTime.Date.AddDays(1) 类型要相同才能between。 如果不相同建议LZ convert() 怎样用sql语句查到指定表中所有字段的各种信息 关于数据库表设计 ****************请教关于两个sql语句 求一个sql语句,行值汇总一列 一个创建表的问题,在线等!! 50分先答对先得,请教还原后用户登陆问题 通过sys.dm_exec_sql_text,查询阻塞的sql语句时,如何获取到参数?? 这个数据导入语句该怎么写? 通过测试,分数有你来定 substring 分割字符串后相加不相等 天盾加密软件(SkyShield)我使用“高强度加密”时,出现错误。求高手解决 各位高手,数据库导入数据错误
from tb
where convert(varchar(10),日期字段,120) between '2011-08-08' and '2011-08-09'
==col >= '2011-8-8' and col <= '2011-8-9'
注意col <= '2011-8-9'并不是'2011-8-9'这天的数据,而是只有'2011-8-9'这个时间点的数据包含,要精确找出'2011-8-9'这天所有数据应该
col >= '2011-8-9' and col < '2011-8-10'不用1楼的方法是考虑效率,函数会使得索引效能下降
会隐式转换为
between '2011-08-08 00:00:00' and'2011-08-08 00:00:00'是查不出来数据的
改为'2011-8-9'查出来不对,是什么意思,你把话说完整了好不好
set @date = '2011-08-08'
select @date
--你看一下这个结果是什么,然后看看这样你between '2011-08-08'
and '2011-08-08'
的结果
set @date = '2011-08-08'
select @date
select convert(varchar(10),@date,120)
--看一下这两者有什么区别
AcHerat的把时间给convert了就什么也查不出了,NBDBA的用法和between and 的用法是一样的,也不可以,我也试过between '2011-8-4 00:00:00' and '2011-8-4 23:59:59'但它连8-5的也查出来了,但是8-5号的不对,怎么办?急求!
数据类型 范围 精确度
datetime 1753 年 1 月 1 日到 9999 年 12 月 31 日 3.33 毫秒
smalldatetime 1900 年 1 月 1 日到 2079 年 6 月 6 日 1 分钟按smalldatetime类型
between '2011-8-4 00:00:00' and '2011-8-4 23:59:59'
等于
between '2011-8-4' and '2011-8-5'
enddate.DateTime.Date.AddDays(1)