web-dev-qa-db-fra.com

Requête MySql pour sélectionner des enregistrements avec une date particulière

donc en ce moment je stocke a la date de chaque recherche effectuée sur mon site comme celui-ci

2011-06-07 21:44:01

maintenant, je voudrais exécuter une requête pour sélectionner toutes les valeurs où la date est égale à quoi que, mais seulement l'année/mois et le jour sont pris en compte, de sorte que

mysql_query("SELECT tag from tags WHERE date = '2011-06-07'");

mais il ne faut pas prendre en compte l'heure exacte (heure, minute, seconde), y a-t-il un moyen de le faire?

28
Belgin Fish

Vous pouvez utiliser la fonction DATE() .

SELECT `tag`
  FROM `tags`
 WHERE DATE(`date`) = '2011-06-07'

Cependant, pour de meilleures performances, vous pouvez utiliser ...

  WHERE `date` 
BETWEEN '2011-06-07'
    AND '2011-06-07 23:59:59'
55
alex

Cela devrait fonctionner:

mysql_query("SELECT tag from tags WHERE date LIKE '2011-06-07%'");
4
Sparkup
mysql_query("SELECT tag from tags WHERE DATE(`date`) = '2011-06-07'");

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date

1
Phphelp

Je sais que la réponse que je suis sur le point de poster est attendue depuis longtemps, mais cela peut aider une personne susceptible de rencontrer le même problème.

Pour mon cas j'ai utilisé:

SELECT * 
FROM tablename 
WHERE dateCol >= date("2017-11-01") 
AND dateCol < date("2017-11-01") + INTERVAL 1 DAY;

C'est plus rapide que d'utiliser la fonction DATE ().

Si vous utilisez une procédure stockée, vous pouvez transmettre la date sous forme de chaîne et la fournir sous forme d'argument à la place de ("2017-11-01").

0
Eric Kirima