Ich möchte ein Datum aus einer Datenbank vergleichen, das zwischen zwei angegebenen Daten liegt. Die Spalte aus der Datenbank ist DATETIME, und ich möchte sie nur mit dem Datumsformat vergleichen, nicht mit dem Datum / Uhrzeit-Format.
SELECT * FROM `players` WHERE CONVERT(CHAR(10),us_reg_date,120) >= '2000-07-05' AND CONVERT(CHAR(10),us_reg_date,120) <= '2011-11-10'
Ich erhalte diesen Fehler, wenn ich die obige SQL ausführe:
Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax für 'us_reg_date, 120)> =' 2000-07-05 'AND CONVERT (CHAR (10), us_reg_date, 120) <=' 2011- 'at Linie 1
Wie kann dieses Problem behoben werden?
mysql
sql
comparison
NVG
quelle
quelle
Dies ist die SQL Server-Syntax zum Konvertieren eines Datums in eine Zeichenfolge. In MySQL können Sie die DATE- Funktion verwenden, um das Datum aus einer Datums- / Uhrzeitangabe zu extrahieren:
Wenn Sie jedoch einen Index für die Spalte nutzen
us_reg_date
möchten, können Sie dies stattdessen versuchen:quelle
Das funktioniert bei mir:
Beachten Sie die Formatzeichenfolge '% Y-% m-% d' und das Format des Eingabedatums.
quelle
Hey Leute, danke für deine Hilfe, ich habe die Antwort bekommen.
Hier ist der Code .......
quelle
das hat bei mir funktioniert:
Bitte beachten Sie, dass ich STR_TO_DATE (Spalte '% d /% m /% Y') von früheren Lösungen ändern musste, da das Laden ewig dauerte
quelle