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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top