2016-04-17 14 views
-2

hoffen, dass Sie schön und gut,Auswählen von Daten aus der Datenbank auf Datum basiert

Ich habe eine Tabelle, die Personen Informationen enthält, und ich habe eine Spalte Anmeldetag in der Tabelle, ich will die registrierten Personen in bestimmten Datum holen .

um genauer zu sein Ich möchte einige Datum in HTML-Eingabe dann aus der Datenbank basierend auf diesem Datum auswählen.

Ich habe versucht, zwei Lösungen aber sie nicht wirklich:

  1. durch das vollständige Eingabe von Datum: dies mit vollem Datum nur funktionieren wird, zum Beispiel, wenn ich 2016.01.01 trete ich in die Ergebnisse erhalten von Dieses Datum, aber wenn ich alle Leute zurückgeben möchte, die sich in 2016-1 oder 2016 registriert haben, wird meine Abfrage fehlschlagen, da diese Werte nicht mit den Daten in der Tabelle übereinstimmen!

  2. mit regulären Ausdruck, es ist in Ordnung, aber es wird wieder fehlschlagen! Wenn ich beispielsweise 2016-1 eingegeben habe, gibt die Abfrage auch die Ergebnisse von 2016-11 zurück!

so irgendwelche Ideen?! oder irgendwelche besseren regulären Ausdrücke?!

grüße.

+0

Try 'REGEXP '[[: <:]] 2016-1 [[:>:]]'', oder - wenn das Datum ist die einzige Spaltenwert - 'REGEXP '^ 2016-1 [[:::]]' ' –

+0

danke, aber ich möchte einen allgemeinen Ausdruck mit PHP-Variable ($ date) verwendet, die das eingegebene Datum ist! – MSMC

+0

Dann zeigen Sie bitte den Code, den Sie versucht haben, fehlgeschlagen. –

Antwort

0

Beste Lösung wäre es in der Abfrage zu tun, zumindest meiner Meinung nach.

Sie wollen also alle Benutzer ab 2016?

SELECT * FROM `users` WHERE year(`date_field`) = '2016'; 
// Where 'date_field' is the name of your date field 

Oder 2016/01 wäre:

SELECT * FROM `users` WHERE year_month(`date_field`) = '2016-01'; 
// Where 'date_field' is the name of your date field# 

Oder Sie könnten dies für 2016/01 verwenden:

SELECT * FROM `users` WHERE year(`date_field`) = '2016' AND month(`date_field`) = '01'; 
// Where 'date_field' is the name of your date field 

Für eine vollständige Liste der MySql Datumsfunktionen Besuche die documentation .

+0

danke liebes, aber ich brauche eine allgemeine Lösung, der Benutzer wird ein beliebiges Datum in der PHP Variable eingeben! zum Beispiel: 2015-11, 2004-05-06, 2009 und so weiter! – MSMC

+0

Also in Ihrem HTML-Skript geben Sie dem Benutzer ein Formular, um das Datum auszuwählen. Erstellen Sie dann in Ihrem PHP-Skript die Abfrage mit den vom Benutzer bereitgestellten Werten. So -> http://www.w3schools.com/html/tryit.asp?filename = tryhtml_input_date – Doug

+0

nette Idee! aber es scheitert mit Daten wie 2009-05! Wenn Sie den Tag leer halten, wird das Formular sagen: Ungültiges Datum! – MSMC

0

Ich möchte hinzufügen, dass Sie auch für Ergebnisse zwischen bestimmten Daten abfragen können.

Was ich oft am Ende zu tun ist:

// For a certain month or period 
SELECT * 
FROM users 
WHERE date_field >= '2016-01-01' 
AND date_field <= '2016-02-01'; 

// For a whole year 
SELECT * 
FROM users 
WHERE date_field >= '2016-01-01'; 
Verwandte Themen