问个SQL语句问题

2010-05-28  时嬿 

      统计入学时间在1998年至2003年的学生人数
   为什么是

select count(*) as 学生数量 from table where enrollment between '1998-01-01' and '2003-12-30'

   而不是

select count(*) as 学生数量 from table where enrollment between '1998' and '2003'

 

   为什么一定要把月,日都带上?

  

   弱弱的问一下,各位大牛不要砸我

437°/4281 人阅读/9 条评论 发表评论

韩杨  2010-05-28

我觉得是看你表里的日期是怎么定义的类型。。。。


时嬿  2010-05-28

韩杨: 我觉得是看你表里的日期是怎么定义的类型。。。。
如果只有年份的话,后者也是对的咯


韩杨  2010-05-28

时嬿: 如果只有年份的话,后者也是对的咯
当然,如果你建表时的年份是数值型的,而不是日期型的,那是对的。。。


曾晨  2010-05-28

enrollment 你看下这个字段是怎么定义的 不过稍微改下就好了
select count(*) as 学生数量 from table where datepart(year,enrollment) between '1998' and '2003'


金鑫  2010-05-28

看enrollment 字段的类型


时嬿  2010-05-28

哦~~,了解了,看例子的时候它没说明前提,所以看不太懂了,多谢各位


程守标  2010-05-28

学习了~


何斌  2010-06-01

哈哈


袁帅  2010-06-07

要看那个“enrollment”下面允许控制哪些数据的类型 、


登录 后发表评论