Il existe un champcreated_at
de type datetime. Comment sélectionner les données d'une date précise ?
SELECT * FROM data WHERE created_at = '2017-06-29';
SELECT * FROM data WHERE created_at BETWEEN '2017-06-29 00:00:00' AND '2017-06-29 23:59:59';
Aucun d'entre eux n'est correct, les ensembles de résultats sont tous vides
Article de référence : Fonctions liées au traitement du temps MySQL
OÙ DATE(created_at) = '2017-06-29'
ou
OÙ créé_à LIKE '2017-06-29%'
Le format par défaut de datetime est '2017-06-29 00:00:00' Si vos données contiennent des données ce jour-là, le deuxième élément aura des résultats, vous devez donc d'abord vérifier s'il y a des données ce jour-là. dans le tableau. Et quel est votre format de données ?
PS : Pour obtenir les données d'un certain jour, vous pouvez utiliser create_at comme 'aaaa-mm-jj%' ou votre deuxième façon d'écrire, date(created_at) et left(created_at) peuvent également obtenir la date du jour, mais ils ne seront pas indexés, l'efficacité est très mauvaise
Je peux, mais peut-être que votre table ou votre champ est erroné, ou qu'il n'y a effectivement aucun résultat. . Les conditions ne posent aucun problème
Cela signifie interroger l'heure qui est supérieure ou égale à 0h00 aujourd'hui et inférieure à 0h00 demain
La première ligne est fausse car le format datetime est différent du format dans votre condition.
La deuxième ligne est correcte.
Le résultat est également correct, car il n'y a effectivement aucune donnée.