tomando tus datos podemos llegar a esta solucion:
Código SQL:
Ver originalCREATE TABLE #temp
(
fecha datetime
)
INSERT INTO #temp VALUES ('2014-04-08 10:22:33.920')
INSERT INTO #temp VALUES ('2014-04-08 12:06:39.200')
INSERT INTO #temp VALUES ('2014-04-08 12:06:40.200')
INSERT INTO #temp VALUES ('2014-04-08 12:40:03.200')
INSERT INTO #temp VALUES ('2014-04-08 12:20:39.200')
INSERT INTO #temp VALUES ('2014-04-08 12:19:00.100')
INSERT INTO #temp VALUES ('2014-04-08 12:19:59.200')
INSERT INTO #temp VALUES ('2014-04-08 12:39:59.100')
INSERT INTO #temp VALUES ('2014-04-08 12:06:39.200')
INSERT INTO #temp VALUES ('2014-04-08 12:06:39.200')
INSERT INTO #temp VALUES ('2014-04-08 12:06:39.200')
INSERT INTO #temp VALUES ('2014-04-07 11:23:51.390')
DECLARE @HINI DATETIME
DECLARE @HFIN DATETIME
SET @HINI='2014-04-08 12:00:00.000'
SET @HFIN=DATEADD(MINUTE,40,@HINI)
SELECT * FROM #temp
WHERE fecha BETWEEN @HINI AND @hfin
si observas solo muestra las fechas comprendidas entre las 12:00 y 12:40, ahora, que manejador de base de datos estas usando??