日期:2014-05-17  浏览次数:20337 次

mssql数据库一张表中有一列为datetime,截取时间。
datetime

20100908T04400000 --- 即2010年09月08号04点40分00秒00
20100908T04400000
20101008T05400000
20101109T06440000
20101115T15572900
20101209T10500000
20110909T10500000
20120909T10500000


现在要查询在2010年09月08日04点40分00到2010年12月09日10点50分00之间的数据

请问怎么写sql语句。

注:那个T是在添加时的格式不能改变了。

在查询的时候是根据控件输入时间的一个时间段

sql语句请大神指教。。。

------解决方案--------------------
select * 
from tablename 
where cast(substring([datetime],0,5)+'-'+substring([datetime],6,2)+'-'+substring([datetime],7,2)+' '+substring([datetime],10,2)+':'+substring([datetime],12,2)+':'+substring([datetime],14,2)+'.'+substring([datetime],16,2) as datetime) between '2010-09-08 04:40:00' and '2010-12-09 10:50:00'
------解决方案--------------------
between '20100908T044000' and '20101209T105000'
------解决方案--------------------
只要前端传入参数的时候能把:2010年09月08日04点40分00到2010年12月09日10点50分00
换成20100908T044000这样的格式,那么直接between and就够了。
------解决方案--------------------
select * from test1
where dt between '20100908T04400000' and '20101008T05400000'