2016-04-20 18 views
0

Ich habe eine Tabelle von rund 6000 Datensätze mit einer Datumsspalte unter anderen Spalten, die die Frist für eine Abfrage darstellen. Ich brauche das Datum in der Spalte zum heutigen Datum zu vergleichen, die ich verstehe so etwas wie getan wird:MySQL Daten in einer Spalte zu vergleichen heute

SELECT DATEDIFF(DATE_TO_COMPARE, CURDATE()); 

Allerdings habe ich dann einen anderen comlumn ich zu diesem Zeitpunkt Unterschied festlegen möchten. Also für jedes Datum muss ich vergleichen, den Unterschied in die Spalte difference_in_days einfügen, zum nächsten Datum iterieren und wiederholen.

Ich Berufung auf diese Funktion auch, wenn eine bestimmte Seite auf meiner Seite mit AJAX und PHP/PDO

geladen wird

Wissen My SQL ist nicht so umfangreich, wie ich das erreichen kann.

Tabelle ist ein bisschen von wie

field 1, field2, field 3, date_to_compare, field 4, field 5, difference_in_days  
    |  |  |  | 2016-04-20  |  |  |     | 
    |  |  |  | 2016-04-25  |  |  |     | 
    |  |  |  | 2016-04-22  |  |  |     | 
    |  |  |  | 2016-04-27  |  |  |     | 
    |  |  |  | 2016-04-29  |  |  |     | 

Antwort

3

Sonds wie Sie ein Update tun?

UPDATE table_name 
SET difference_in_days = DATEDIFF(date_to_compare, CURDATE()); 

Dies wird jeden Datensatz in der Tabelle auf das Diff des aktuellen Datums aktualisieren.

Allerdings, dies erfordert, dass Sie das Update jeden Tag ausführen, wenn diese Spalte relevant bleiben soll.

alternativer Ansatz:

Wenn Sie das nicht viel abfragt, können Sie besser dran mit einem Blick sein, die jedes Mal, wenn Sie es in Echtzeit abfragen aktualisiert.

CREATE VIEW diff_view_name AS 
SELECT *, DATEDIFF(date_to_compare, CURDATE()) AS difference_in_days 
FROM table_name; 

Dann könnten Sie es mit Abfrage:

SELECT * FROM diff_view_name; 
+0

So einfach. Wie habe ich das nicht bemerkt? Danke –

+0

@MrDansk - Plase überprüfen Sie meine Bearbeitung/Vorschlag für eine Ansicht. –

+0

Ich sah es als eine gespeicherte Prozedur, um die Abfrage täglich um X Zeit auszuführen, aber ich glaube nicht, ich habe Berechtigungen/die Anforderungen sind nicht auf dem Server aktiviert. Kannst du mir einen Überblick darüber geben, was eine Ansicht anders macht? Ich beabsichtige, die Abfrage nur auszuführen, wenn die Seite geladen wurde, die Tabelle zu aktualisieren und den Benutzern die letzten Werte anzuzeigen, damit sie relevant bleiben. –

Verwandte Themen