Ver Mensaje Individual
  #11 (permalink)  
Antiguo 22/08/2011, 09:30
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Sql server select que busca rango de fechas y horas

Código SQL:
Ver original
  1. CREATE TABLE #temp(
  2. fecha datetime
  3. )
  4. INSERT INTO #temp VALUES ('2011-08-08 08:30:00.000')
  5. INSERT INTO #temp VALUES ('2011-08-08 09:30:00.000')
  6. INSERT INTO #temp VALUES ('2011-08-08 10:15:00.000')
  7. INSERT INTO #temp VALUES ('2011-08-08 12:30:00.000')
  8. INSERT INTO #temp VALUES ('2011-08-09 08:45:00.000')
  9. INSERT INTO #temp VALUES ('2011-08-09 09:25:00.000')
  10. INSERT INTO #temp VALUES ('2011-08-09 20:45:00.000')
  11. INSERT INTO #temp VALUES ('2011-08-10 08:32:00.000')
  12. INSERT INTO #temp VALUES ('2011-08-10 08:49:00.000')
  13. INSERT INTO #temp VALUES ('2011-08-10 16:45:00.000')
  14.  
  15. CREATE TABLE #temp2
  16. (
  17. fecha datetime
  18. )
  19.  
  20. DECLARE @dias AS INT
  21. DECLARE @fecha1 datetime
  22. DECLARE @fecha2 datetime
  23. DECLARE @fecha3 datetime
  24. DECLARE @x INT
  25. DECLARE @hora1 VARCHAR(20)
  26. DECLARE @hora2 VARCHAR(20)
  27. --'2011-08-08','2011-08-10','08:30:00','09:00:00'
  28. SET @fecha1='2011-08-08'
  29. SET @fecha2='2011-08-10'
  30. SET @hora1='08:30:00'
  31. SET @hora2='09:00:00'
  32.  
  33. SELECT @dias=datediff(dd,@fecha1,@fecha2)
  34. print @dias
  35. SET @x=0
  36. while @x<=@dias
  37. BEGIN
  38.    SET @fecha3=dateadd(dd,@x,@fecha1)    
  39.    print 'x ' + CONVERT(VARCHAR(2),@x)
  40.    print @fecha3
  41.    INSERT INTO #temp2
  42.    SELECT CONVERT(datetime,fecha) AS fecha FROM #temp WHERE fecha
  43.    BETWEEN CONVERT(datetime,(@fecha3 + ' ' + @hora1)) AND CONVERT(datetime,(@fecha3 + ' ' + @hora2))
  44.    SET @x=@x+1
  45. END
  46. SELECT * FROM #temp2

Saludos!!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me