Ich versuche:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
sieht aus wie: 2010-03-04 00:00:00.000
Dies funktioniert jedoch nicht.
Kann jemand eine Referenz dafür geben, warum?
sql
sql-server
datetime
Eric Francis
quelle
quelle
Antworten:
Wird in Ihrer Abfrage
2010-4-01
als mathematischer Ausdruck behandelt , lautet er also im Wesentlichen(
2010 minus 4 minus 1 is 2005
Wenn Sie es in ein richtiges Format konvertierendatetime
und einfache Anführungszeichen verwenden, wird dieses Problem behoben.)Technisch gesehen können Sie mit dem Parser möglicherweise davonkommen
Es wird die Konvertierung für Sie durchführen, aber meiner Meinung nach ist es weniger lesbar als die explizite Konvertierung in ein
DateTime
Programm für den Wartungsprogrammierer, das nach Ihnen kommt.quelle
SET LANGUAGE FRENCH
. :-) Für dieses Datum erhalten Sie den 4. Januar anstelle des 1. April. Für andere Daten wird möglicherweise stattdessen eine Fehlermeldung angezeigt.CONVERT(datetime, '20100401 10:01:01')
- Das Bestehen des 01.04.2010 funktioniert in SQL Server Management Studio, jedoch nicht beim Senden der SQL-Anweisung über PHP / MSSQL.Versuchen Sie, Ihr Datum in eine Zeichenfolge einzufügen.
quelle
Wir können wie unten auch verwenden
quelle
Konvertieren Sie zuerst TexBox in die Datetime und verwenden Sie dann diese Variable in der Abfrage
quelle
Zusammenfassend lautet die richtige Antwort:
Dadurch werden Probleme mit anderen Sprachsystemen vermieden und der Index verwendet.
quelle