SQL查询限定时间话语

SQL查询限定时间语句
现有一数据库,表(T1)里有一字段startrecordtime,时间格式示例:2008-04-14 09:51:01.000,datetime类型。我现在要查询2008-04-14至2008-04-16这两天08:00到18:00的数据,该怎么查询呢?
------解决思路----------------------
SELECT  *
FROM    T1
WHERE   CONVERT(VARCHAR(10), startrecordtim, 120) BETWEEN '2008-04-14'
                                                  AND     '2008-04-16'
AND CONVERT(VARCHAR(5),startrecordtim,5) BETWEEN '08:00' AND '18:00'

------解决思路----------------------

WHERE startrecordtime BETWEEN'2008-04-14'AND'2008-04-16'
AND CONVERT(VARCHAR(8),startrecordtime,8) BETWEEN'08:00:00'AND'18:00:00'

------解决思路----------------------
select * from T1 where startrecordtime between '2008-04-14'and '2008-04-15'and convert (VARCHAR(9),startrecordtime,9)between '08:00'and'18:00'--CONVERT() 函数是把日期转换为新数据类型的通用函数;CONVERT() 函数可以用不同的格式显示日期/时间数据。