时间段

stou 2007-06-06 08:38:02
发现个问题

select * from tb where dt between '2007-06-03' and '2007-06-03 23:59:39'
这条语句会把 2007-06-04 数据查出来。
想问下,这是sqlserver规定的吗
...全文
224 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
stou 2007-06-06
  • 打赏
  • 举报
回复
thanks
y_dong119 2007-06-06
  • 打赏
  • 举报
回复
我以前也出现过这样的问题,呵呵
最好就是用datetime,不用smalldatetime了,^_^
sp4 2007-06-06
  • 打赏
  • 举报
回复
smalldatetime精确到分钟

精度的临界值为29.999 秒
'2007-06-03 23:59:39' 就相当于 '2007-06-04 00:00:00'
可以将显示转化成smalldatetime就知道结果了
SELECT CAST('2007-06-03 23:59:39' AS smalldatetime)

yuedeem 2007-06-06
  • 打赏
  • 举报
回复
不好意思没看见是smalldatetime :(
smalldatetime 默认23:59:29 之前为当日 之后为次日 lz查的相当于select * from tb where dt between '2007-06-03' and '2007-06-04 00:00:00'
yuedeem 2007-06-06
  • 打赏
  • 举报
回复
不可能 :)
fa_ge 2007-06-06
  • 打赏
  • 举报
回复
不论是日期还是字符型都不会查出来的
stou 2007-06-06
  • 打赏
  • 举报
回复
我的是smalldatetime
gd4134 2007-06-06
  • 打赏
  • 举报
回复
datetime类型的查不出来。
不知道你是怎么查出来的。。。
being21 2007-06-06
  • 打赏
  • 举报
回复
select * from

(select '2007-06-03' as A union all select '2007-06-03 23:59:39' as A union all select '2007-06-04')

tb where A between '2007-06-03' and '2007-06-03 23:59:39'

2007-06-03
2007-06-03 23:59:39
being21 2007-06-06
  • 打赏
  • 举报
回复
汗,可能么???
wgzaaa 2007-06-06
  • 打赏
  • 举报
回复
这样是查不出来
stou 2007-06-06
  • 打赏
  • 举报
回复
楼上,放点分应该会长
being21 2007-06-06
  • 打赏
  • 举报
回复
为什么我的可用分不长了?呵呵。顶一个,看看长么??

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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