2009-09-24 21 views
34

Wie Daten aus mysql Tabelle vergangenes Datum bis zum aktuellen Datum auswählen? Beispiel: Wählen Sie Daten vom 1. Januar 2009 bis zum aktuellen Datum aus.Wählen Sie mysql Abfrage zwischen Datum?

Meine Spalte "datetime" ist in Datetime Datumstyp. Bitte helfen, danke

Edit:

Wenn wir an, ich Tag pro Tag Daten vom 1. Januar 2009 erhalten möchten, wie die Abfrage zu schreiben? Benutze zählen und zwischen Funktion?

Antwort

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

oder mit >= und <=:

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

Kühl. Es klappt. LETZTE Frage: Wenn ich seit dem 01.01.2009 Daten pro Tag anzeigen möchte, muss die Zählfunktion richtig sein? Irgendeine Idee, wie man es umsetzt? –

+0

Sie können "group by" und "order by" wie folgt verwenden: select * aus [table_name] wobei [datetime_column] zwischen '01/01/2009 'und curdate() group von [datetime_column] order by [datetime_column] –

+0

ich habe es versucht: SELECT *, count (*) aus der Tabelle WHERE datetime ZWISCHEN '2009-01-01' UND '2009-09-01' GROUP BY datetime; aber die Zählung ist 1. es soll, 10, 5, 8 usw. sein ... –

12

Sie now() wie verwenden:

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

Alle oben genannten Arbeiten, und hier ist eine andere Art und Weise, wenn Sie nur wollen Anzahl der Tage/Zeit zurück eher ein Eingabetermin

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

Das ist ziemlich ordentlich! – frankster

+0

Das funktioniert super! – lucasarruda