日期:2014-05-19  浏览次数:20560 次

日期型数据查询问题?
我现在有个如下的表,领书日期是用的nvarchar(50)类型,现在想统计某一   领书日期   段内的   教材数量。
    1     应该怎样写sqlserver查询语句啊?
    2     需不需要把   领书日期   改成     datatime   类型?需要注意什么吗?


学生领书表

结构

学号               领书日期           教材名称
20050001       2007-3-15         计算机教材
20060001       2006-2-17         市场营销教材

------解决方案--------------------
--想统计某一 领书日期 段内的 教材数量。
select count(*) from tb where convert(datime,领书日期 )between ...and....

2.最好用datetime类型
------解决方案--------------------
恩,推荐在设计表结构的时候用datetime

不过在此,不用convert也可以between的
create table #temp
(a varchar(50),
b varchar(50),
c varchar(50)
)
insert into #temp
select '20050001 ', '2007-3-15 ', '计算机教材 ' union all select '20060001 ', '2006-2-17 ', '市场营销教材 '
select * from #temp

select count(*) from #temp where b between '2006-2-17 ' and '2007-3-15 '
--------
2