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 :
Und wenn, dann select * from my_table limit 10
Ich habe :
Was bedeutet, dass ich einige "bis" bei "0000-00-00 00:00:00" habe
Antworten:
2 für die Antwort № 1Ihre 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
, where
und so weiter für Spaltennamen.