SQL - Consulta por rango de fechas
Pregunta
Tengo una tabla de encabezado de pedido llamada '' OrderH ''. En esta tabla hay una columna llamada '' OrderDate ''. Estoy tratando de recuperar los pedidos con una fecha dentro de un cierto rango. Pensé que podría lograr esto con el '' entre '' palabra clave pero no estoy teniendo suerte. Este es este SQL con el que he estado jugando:
select
*
from
OrderH h
where
h.OrderDate between '2009-06-16' and '2009-06-01'
order by
h.OrderDate desc
¿Qué estoy haciendo mal?
Solución
la fecha más pequeña tiene que ser la primera
between '2009-06-01' and '2009-06-16'
en lugar de
between '2009-06-16' and '2009-06-01'
También tenga cuidado al usar entre porque obtendrá el valor de medianoche de la fecha más grande y nada más
Eche un vistazo a ¿Cómo funciona el trabajo entre fechas con SQL Server?
Otros consejos
La consulta no funciona porque en su ejemplo, la primera fecha es mayor que la segunda fecha. Cambia las fechas. Primero debe ser menor que igual a la segunda fecha.
Es difícil encontrar fechas que terminen antes de que comiencen. Cambiar el mínimo y el máximo ...
h.OrderDate between '2009-06-01' and '2009-06-16'
select
*
from
OrderH h
where
h.OrderDate between '2009-06-01' and '2009-06-16'
order by
h.OrderDate desc
En los eventos de MS-SQL Server que ocurran después del 16/06/2009 a la medianoche no se incluirán.