2010-01-19 9 views
1

Dans mon tableau, j'ai deux champs: start_date et end_date. J'essaie juste de récupérer les lignes où la date actuelle est entre les dates de début et de fin. Pour une raison quelconque, je suis pas obtenir cela du tout. J'ai essayé d'utiliser entre les deux, mais je continue à obtenir des décors vides même si je sais qu'il existe des disques qui existent ... Je ne pense pas que j'y pense clairement ... Quelqu'un sait comment faire ça?Requête de date Mysql pour trouver si le courant est dans les deux dates?

+1

Pourriez-vous s'il vous plaît poster quelques enregistrements qui devraient être retournés mais ils ne le sont pas? – Quassnoi

Répondre

3
SELECT * 
FROM mytable 
WHERE SYSDATE() BETWEEN start_date AND end_date 

Assurez-vous que votre start_date et end_date sont DATE ou DATETIME, non VARCHAR.

0

Voici une autre façon de le faire sans utiliser ENTRE:

WHERE @date >= start_date AND @date <= end_date 

Il devrait être équivalent bien.

Notez également que souvent ce que vous vraiment voulez est un intervalle semi-ouvert:

WHERE @date >= start_date AND @date < end_date 

Si vous radiomessagerie, en utilisant un intervalle semi-ouvert évite la répétition des valeurs à la fin d'une page à la début de la prochaine. Vous ne pouvez pas exprimer cela avec la syntaxe BETWEEN.

Questions connexes