2012-04-18 16 views

risposta

13

Troverete un sacco di persone che utilizzano tra operatore, ma preferisco usare un operatore AND semplice.

Lo faccio perché anche se l'operatore tra IS è compreso, date semplici (2012-04-10) possono essere contate come mezzanotte e quindi non saranno inclusivi.

quindi questo dovrebbe funzionare bene e sarà sempre includere i confini del l'intervallo di date:

Dichiarazione

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

Funziona alla grande, tranne che hai i coccodrilli che guardano nel modo sbagliato :) – JJJollyjim

+0

Oops, mi dispiace per quello :) – Bill

6

Basta usare lo SQL ora() per confrontare le colonne di data in questo modo:

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

Usa CURDATE(), invece, si noti che se si utilizza NOW() comprende informazioni sull'ora e può portare a escludere alcune date, ovvero la prossima funzione restituisce false (0): selezionare "2010-01-01 14:00:00" <= "2010-01-01" – CesarC

+0

grazie a @CesarC :) –

15

È possibile aggiungere una condizione come segue

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

che era la soluzione al mio problema, grazie! –

+0

anche la soluzione – erwinnandpersad

Problemi correlati