日期:2014-05-18  浏览次数:20512 次

有关sql server语句操作的问题。
请问如何选出一段时间内的结果,如选出2001-1-1和2012-1-1时间内的数据结果呢?时间格式有两种年-月-日和年/月/日。求大神指教,随便满足哪种格式都行,跪求!

------解决方案--------------------
你的字段不是时间类型的字段吗?
那就这样 where cast(字段 as datetime) between 2001-1-1' and '2012-1-1'
------解决方案--------------------
SQL code

--你的格式如果是字符串的话的:你可where cast(字段 as datetime) 然后 between 开始时间 and 结束时间
--如果不是,直接:where 字段 between ... and ...

------解决方案--------------------
你这样的日期格式'2001-1-1'是属于date类型精度是秒,你要想查询是在'2001-1-1'和'2001-1-1'之间的时间,
那么你就这样处理:
convert(varchar(10),时间字段,120)='2001-1-1'

给你一个例子:

SQL code

declare @str datetime
set @str=GETDATE()
select CONVERT(varchar(10),@str,120) as 日期
/*
日期
2012-05-06
*/

------解决方案--------------------
select 要查询的结果字段 from 表名 where 时间字段>= convert(varchar(10),'2001-01-01',120) and 时间字段 <=convert(varchar(10),'2012-01-01',120)