318 votes

Comment effectuer une requête entre deux dates avec MySQL ?

La requête suivante :

SELECT * FROM `objects` 
WHERE (date_field BETWEEN '2010-09-29 10:15:55' AND '2010-01-30 14:15:55')

ne renvoie rien.

Je devrais avoir plus de données que nécessaire pour que la requête fonctionne. Qu'est-ce que je fais de mal ?

0voto

tester Points 1
SELECT * FROM `objects` 
WHERE from_days(to_days(createdon)) BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55'

-1voto

Jure1873 Points 223

Essayez d'intervertir les dates :

2010-09-29 > 2010-01-30?

-1voto

Jodyshop Points 460

Pour afficher le(s) message(s) entre 2 dates spécifiques (par exemple) :

une occasion commence le (04-12) et se termine le (04-14) sans sélectionner d'année dans la requête pour la rendre récurrente chaque année aux dates spécifiées. Mon objectif est donc d'afficher cette occasion à la date de début et de la masquer automatiquement à la date de fin comme suit :

$stmt = $db->query(
    "SELECT * FROM table

    WHERE (CAST(CURDATE() AS date)

    BETWEEN

    CAST(table.date_start AS date)
    AND
    CAST(table.date_end AS date))

    LIMIT 1"
);

Maintenant, l'occasion commence et disparaît entre ces dates spécifiées seulement, pas après ou avant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X