时间段
发现个问题   
 select   *   from   tb   where   dt   between    '2007-06-03 '   and    '2007-06-03   23:59:39 '    
 这条语句会把 2007-06-04   数据查出来。 
 想问下,这是sqlserver规定的吗
------解决方案--------------------为什么我的可用分不长了?呵呵。顶一个,看看长么??
------解决方案--------------------这样是查不出来
------解决方案--------------------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 
------解决方案--------------------datetime类型的查不出来。 
 不知道你是怎么查出来的。。。
------解决方案--------------------不论是日期还是字符型都不会查出来的
------解决方案--------------------不好意思没看见是smalldatetime :( 
 smalldatetime 默认23:59:29 之前为当日 之后为次日 lz查的相当于select * from tb where dt between  '2007-06-03 ' and  '2007-06-04 00:00:00 '
------解决方案--------------------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)   
------解决方案--------------------我以前也出现过这样的问题,呵呵 
 最好就是用datetime,不用smalldatetime了,^_^