2009-09-24 12 views
34

Comment sélectionner les données de la date passée de la table mysql à la date actuelle? Par exemple, sélectionnez les données à partir du 1er janvier 2009 jusqu'à la date actuelle?Sélectionnez une requête mysql entre la date?

Ma colonne "datetime" est de type datetime. S'il vous plaît aider, merci

Edit:

Si Disons que je veux obtenir des données jour par jour à partir du 1er janvier 2009, comment écrire la requête? Utilisez count et entre fonction?

Répondre

54
select * from *table_name* where *datetime_column* between '01/01/2009' and curdate() 

ou en utilisant >= et <=:

select * from *table_name* where *datetime_column* >= '01/01/2009' and *datetime_column* <= curdate() 
+0

Cool. Ça marche. DERNIÈRE question: Si je veux afficher les données par jour depuis le 01/01/2009, dois-je utiliser la fonction de compte correctement? Une idée de comment mettre en œuvre? –

+0

Vous pouvez utiliser "group by" et "order by", comme ceci: select * from [table_name] où [datetime_column] entre '01/01/2009 'et curdate() group par [datetime_column] ordonné par [datetime_column] –

+0

J'ai essayé ceci: SELECT *, count (*) de la table WHERE datetime ENTRE '2009-01-01' ET '2009-09-01' GROUP BY DATE TIME; mais le nombre est 1. il est supposé être, 10, 5, 8 etc ... –

12

Vous pouvez utiliser now() comme:

Select data from tablename where datetime >= "01-01-2009 00:00:00" and datetime <= now(); 
19

Tous les travaux ci-dessus, et voici une autre façon, si vous voulez juste nombre de jours/heure retour plutôt une date d'entrée

select * from *table_name* where *datetime_column* BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) AND NOW() 
+0

C'est assez bien! – frankster

+0

Celui-ci fonctionne très bien! – lucasarruda

Questions connexes