Frage von Yoda00, 49

MySQL Tabellenspalte mit Datum als String in Timestamp umwandeln und vergleichen?

Hi! Ich möchte von meiner Tabelle in einer Datenbank alle Zeilen ausgeben lassen, bei denen das Datum (steht in der Spalte datum) älter ist, als ein Datum das vorher in ein Formular eingegeben wird. Das Datum in der Tabellenspalte liegt als VARCHAR vor, also als String. Das Datum aus dem Formular liegt ebenfalls als String vor.

Da PHP aber die Daten so nicht vergleichen kann, habe ich das Datum aus dem Formular mit $wert = strtotime($wert); in einen Timestamp umgewandelt.

Kann ich jetzt irgendwie im mysql query bestimmen, dass die Spalte datum, bevor verglichen ob diese älter als das Datum (bzw. der Timestamp) in der Variable $wert ist, zuerst in einen Timestamp umgewandelt wird??

Folgendes funktionierte nicht:

$result = mysql_query("SELECT * FROM tabelleA WHERE strtotime(datum) < \"$wert\" ");

Danke!

Antwort
von fluffiknuffi2, 33

http://stackoverflow.com/questions/8587177/string-to-timestamp-in-mysql#answers-...

STR_TO_DATE

bzw.

UNIX_TIMESTAMP( STR_TO_DATE ( ... ) )
Antwort
von TheQ86, 32

Entweder du wandelst das Formularfeld UND den aus MySQL gelesenen "Datumstring" in nen Timestamp um, ODER du machst es einfach richtig:

MySQL Spalte sollte vom Typ DATETIME oder TIMESTAMP sein. Dann kannst du auch im SQL Query gleich vergleichen.

Bsp: 

SELECT * FROM `tabelleA` WHERE `datum` < '2016-05-01'
Kommentar von Yoda00 ,

Kann ich denn einen Timestamp mit einer DATETIME Spalte vergleichen oder muss beides Timestamp sein?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten