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

查询出一段日期里同一个时段的所有数据
数据库:sql server2008    
情况是这样的,我通过触发器从插入的数据中通过截取字符串的方式分离出了日期时间字符串,例如:20120104083338,精确到了秒,用的是varchar类型。
我设置了两个查询条件:日期和时间,时间精确到分钟即可。通过这两个条件需要查询出某段日期里同个时间段的所有数据。

两种情况:
如果我用的是datetime类型
用Datepart函数,不能取出包含年月日的日期(如:20120104),时间也是如此。

第二种情况:就是我前面的字符串这种,除了用substring以外还有什么好办法么?

------解决方案--------------------
截取字符啊,left(字段)
------解决方案--------------------
第二种情况还可以用convert,至于你的第一种情况,那是应为你一开始存储数据就不行,如果只是你这个应用,完全可以存储datetime类型。没必要用varchar。字符串不是非常适合处理时间类型的数据。
------解决方案--------------------
select * from table1 where in_time in
 (select in_time from table1 where LEFT(in_time,8) between '20120104' and '20120104')
 and RIGHT(in_time,6) between '20120104' and '20120104'