Hallo,
habe ein Problem und bekomme es nicht hin. Ich nutze Microsoft SQL Server 2014.
Ich habe mir einen String mit DateTime erzeugt
string DatumGestern = DateTime.Now.AddDays(-1).toString("yyyy-mm-dd")
den Möchte ich nun in meine SQL-Abfrage einbauen:
"SELECT GPSZeit, Laenge, Breite, Geschwindigkeit, Kurs " +
"FROM Logdaten " +
"WHERE ObjectID = " + DeviceID +
"AND GPSZeit >= '2017-03-02'" +
"AND GPSZeit <='" + DatumGestern + "'";
es kommt der Fehler, dass beim umwandeln eines varchar-Wertes in ein Datetime Wert, ein Wert außerhalb liegt.
Kann mir jemand helfen?
Viele Dank...
[Artikelserie] SQL: Parameter von Befehlen
Die String Frickelei, die Du da machst, macht nur Probleme und ist ein Sicherheitsrisiko.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
okay...
wie kann ich es dann machen? Ich möchte das Datum von heute -1 Tag und das in die Sql rein..
Hallo Thron,
suchst du sowas wie SQL Server DATEADD() Function ?
Trotzdem: Lies dir den Link von Abt durch. Da steht drin, wie du viele Probleme umgehen kannst. Je nach Datentyp in der DB kannst du dir das ganze ToString() sparen.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
DateAdd ist absolut nicht nötig.
Man darf einfach nur nicht den Query mit String-Frickelei zusammen bauen, sondern so wie es vorgesehen ist: mit Parametern.
Der Link hast dazu hast Du bereits; spätestens beim Durchlesen erübrigt sich dann die Frage des Wie.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke für die Hilfe, hat geklappt und den Artikel von Abt habe ich mir schon zu herzen genommen...
Gruß