/ / Date de recherche MySQL MM / JJ / AAAA à MM / JJ / AAAA - php, mysql, date

MySQL Date Search MM / JJ / AAAA à MM / JJ / AAAA - php, mysql, date

J'ai une table dans MySQL qui ressemble à ceci:

date        |storenum   |views
-------------------------------
08/21/2009  |42         |3
-------------------------------
08/22/2009  |43         |1
-------------------------------
08/21/2009  |43         |4
-------------------------------
08/22/2009  |42         |22
-------------------------------

Je sais que c'est une date non conventionnelleformat, mais je l'utilise par opposition à AAAA-MM-JJ pour la facilité d'utilisation. Pourtant, je dois rechercher cette base de données pour obtenir tous les "View Records" entre deux dates. En général, ça marche, mais quand je cherche depuis une date comme le 01/01/2009 au 01/01/2010, je n’obtiens aucun résultat.

Est-ce que quelqu'un a des suggestions? Les critiques constructives sont les bienvenues. Merci!

Réponses:

3 pour la réponse № 1

En toute honnêteté, changez la façon dont vous stockez les dates. Mais pour travailler avec ce que vous avez maintenant, vous pouvez envisager d’utiliser STR_TO_DATE () pour les convertir en dates avec lesquelles MySQL peut travailler.


2 pour la réponse № 2

Vous parlez de facilité d'utilisation - je pense que le cas que vous essayez de résoudre maintenant est un exemple de "pas si facile à utiliser" :).

Je voudrais coller au format par défaut des dates dans MySQL

yyyy-mm-dd h:i:s //php"s date formatting

et utilise RENDEZ-VOUS AMOUREUX des champs. Cela résoudra le problème de recherche / insertion de dates. Bien que vous ayez besoin de changer le code pour corriger l'affichage des dates.


1 pour la réponse № 3

quel est ton date type de champ? pour une utilisation correcte, il devrait être date ou datetime, et voyant ce que vous avez, on dirait que vous stockez dates dans un varchar. ai-je raison?

Cela a aussi l'avantage que vous pouvez ajouter des index, puis chercher dans des plages via mysql

Ma suggestion est d'obtenir ce que l'utilisateur entre. puis convertissez-le en un format de date mysql pour la recherche

quelque chose comme:

<?php

$mysql_time = date("Y-m-d H:m:s" strotime("05/11/2008"));

$query = sprintf("SELECT * FROM sometable < "%s"", $mysql_time);

?>

0 pour la réponse № 4

Essayez la recherche au format "aaaaMMjj". MySql le reconnaîtra à coup sûr.