发现SQL Server惊天大秘密!!

  1. 云栖社区>
  2. 博客>
  3. 正文

发现SQL Server惊天大秘密!!

杰克.陈 2014-03-12 14:11:00 浏览408
展开阅读全文
原文:发现SQL Server惊天大秘密!!

--set statistics xml on
CREATE TABLE T_TEST(ID INT IDENTITY PRIMARY KEY,CreateTime DATE)
INSERT INTO T_TEST SELECT '2011-11-04'
UNION ALL SELECT '2011-11-04'
UNION ALL SELECT '2011-11-04'
UNION ALL SELECT '2011-11-05'
UNION ALL SELECT '2011-11-05'
UNION ALL SELECT '2011-11-05'

SELECT * FROM T_TEST

SELECT COUNT(*FROM T_TEST 
WHERE CreateTime>='2011-11-04 00:00:00' AND CreateTime <='2011-11-04 23:59:59'
--等价于(返回3行,这个没有问题)
SELECT COUNT(*FROM T_TEST 
WHERE CreateTime='2011-11-04'


SELECT COUNT(*FROM T_TEST 
WHERE CreateTime>='2011-11-04 00:00:00' AND CreateTime <'2011-11-04 23:59:59'
--等价于(返回0行,因为where条件无意义,这个也没有问题)
SELECT COUNT(*FROM T_TEST 
WHERE CreateTime>='2011-11-04' AND CreateTime <'2011-11-04'


--传入参数为datetime类型(它为什么能返回3行?!!!!这是为什么!!)
SP_executesql N'
    select COUNT(*) 
    from T_TEST
    where CreateTime>=@BeginTime and CreateTime<@EndTime
',N'@BeginTime datetime,@EndTime datetime',
@BeginTime='2011-11-04 00:00:00',
@EndTime='2011-11-04 23:59:59'    

--修改了传参类型为date类型(返回0行)
SP_executesql N'
    select COUNT(*) 
    from T_TEST
    where CreateTime>=@BeginTime and CreateTime<@EndTime
',N'@BeginTime date,@EndTime date',
@BeginTime='2011-11-04 00:00:00',
@EndTime='2011-11-04 23:59:59'    

网友评论

登录后评论
0/500
评论
杰克.陈
+ 关注