2012-04-18 22 views

Respuesta

13

Usted encontrará una gran cantidad de personas que utilizan entre operador, pero prefiero usar un operador AND simple.

Lo hago porque aunque el operador entre IS es inclusivo, las fechas simples (2012-04-10) se pueden contar como la medianoche, y por lo tanto no serán inclusivas.

así que esto debería funcionar bien y siempre incluirá los límites del rango de fechas:

Declaración

SELECT * FROM table WHERE from_date >= '2012-04-10' AND to_date <= '2012-04-10' 
+4

Funciona muy bien, excepto que tienes a tus cocodrilos mirando de la manera incorrecta :) – JJJollyjim

+0

Oops, perdón por eso :) – Bill

6

Sólo tiene que utilizar la función SQL ahora() para comparar las columnas de fecha de este modo:

SELECT * from table where now() >= from_date and now() <= to_date 
+1

Uso CURDATE() en su lugar, Tenga en cuenta que si utiliza NOW() que incluye información del tiempo y puede llevar a excluir algunas fechas, es decir, la siguiente función devuelve falso (0): seleccione "2010-01-01 14:00:00" <= "2010-01-01" – CesarC

+0

gracias @CesarC :) –

15

Usted puede agregar una condición de la siguiente manera

DATE(NOW()) between date1 and date2 
+0

Eso fue la solución a mi problema, gracias! –

+0

también la solución – erwinnandpersad

Cuestiones relacionadas