[MYSQL] pb requete

Je suis pas sûr que les comparaisons de date en les castant sous forme de chaîne soient valide…

la requete proposée par mikmak qui concatenait les données de la base pour creer une date complète et la comparer avec la date de donnee par l’utilisateur marchait parfaitement.

Pk en rajoutant l heure ca marcherait pas pareil si on applique le meme principe?

Parce que tu compares ça comme une chaîne. Chez moi :

foo < ‘01:10’ <=> strcmp(foo, ‘01:10’)<0. Maintenant je peux me tromper, mais date_format chez moi ça renvoie une chaîne, donc quoi que tu veuilles faire ça fait une comparaison de chaîne. Plus de date.

Je ne dis pas que ça influe, mais c’est à noter.

je remonte ce topic car je viens de m’apercevoir d un pb:

cette requete ne marche pas:
SELECT * FROM ticket WHERE date_format( CONCAT( recordYear, ‘-’, recordMonth, ‘-’, recordDay ) , ‘%Y-%m-%d’ ) >= ‘2005-10-02’ AND date_format( CONCAT( recordYear,’-’, recordMonth, ‘-’, recordDay ) , ‘%Y-%m-%d’ ) <= ‘2005-10-26’ AND date_format( CONCAT('0000-00-00 ', recordHour, ‘:’, recordMin) , ‘%k:%i’ ) >= ‘01:10’ AND date_format( CONCAT('0000-00-00 ', recordHour, ‘:’, recordMin) , ‘%k:%i’ ) <= ‘09:10’ AND (called =‘48’ OR caller =‘48’)

et celle ci marche:
SELECT * FROM ticket WHERE date_format( CONCAT( recordYear, ‘-’, recordMonth, ‘-’, recordDay ) , ‘%Y-%m-%d’ ) >= ‘2005-10-15’ AND date_format( CONCAT( recordYear, ‘-’, recordMonth, ‘-’, recordDay ) , ‘%Y-%m-%d’ ) <= ‘2005-10-26’ AND date_format( CONCAT('0000-00-00 ', recordHour, ‘:’, recordMin) , ‘%k:%i’ ) >= ‘08:05’ AND date_format( CONCAT('0000-00-00 ', recordHour, ‘:’, recordMin) , ‘%k:%i’ ) <= ‘17:41’ AND (called =‘48’ OR caller =‘48’)

comme vous pouvez le constater les seules différences concernent les dates et heures

Et la franchement je ne comprends pas

j oubliais de dire: en supprimant le filtre sur les heures ca marche tout le temps…

non?

La seule différence notable que je vois, c’est que dans le second cas il y a une heure supérieure à 10, donc efftivement sur deux caractères
Et à partir de là, je crois bien me rappeler que %k,%i retourne ‘8:05’ et non ‘08:05’
tu as essayé avec %H ?