/ / mysql datetime> = eine Spalte mit dem Namen "to" - mysql, datetime

mysql datetime> = eine Spalte namens "to" - mysql, datetime

Ich versuche, Daten aus meiner Datenbank in Mysql zu holen. Was ich also mache, ist:

select * from my_table where "to" ="0000-00-00 00:00:00";

die geben mir leeres Set, aber ich habe einige Daten, wo die Spalte "to" um "0000-00-00 00:00:00" ist

Zweitens habe ich es versucht:

 select * from my_table where "to" > NOW();

aber ich habe den folgenden fehler:

ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation ">"

Also im Endeffekt was ich möchte ist

select * from my_table where "to" > NOW() or "to" = "0000-00-00 00:00:00";

Also wenn ich das tue describe my_table;Ich habe :

Bildbeschreibung hier eingeben

Und wenn, dann select * from my_table limit 10 Ich habe :

Bildbeschreibung hier eingeben

Was bedeutet, dass ich einige "bis" bei "0000-00-00 00:00:00" habe

Antworten:

2 für die Antwort № 1

Ihre Fragen sehen so aus:

 select * from my_table where "to" = datestamp

Sie geben einen Ausdruck, der die Textzeichenfolge vergleicht "to" zum Datumsstempel Das macht MySQL dazu, seltsame Dinge zu tun und Fehler zu werfen.

Versuche dies

 select * from my_table where `to` = datestamp

Umgeben Sie Ihren Spaltennamen mit Backticks.

Besser noch, verwenden Sie keine SQL-Wörter wie to, from, whereund so weiter für Spaltennamen.