SQL String richtig zusammenbauen?
-
Hallo,
ich habe folgenden sql string:
GetStartDate/GetEndDate sind C# methoden dir mir ein Datum als String liefern im Format dd.mm.YYYY das Format in meiner Tabelle und der Datum spalte ist dd/mm/YYYY
1. Wie baue ich den String richtig zusammen, damit die C# Funktionen ausgeführt werden und gleichzeitig die sql funktion to_date auf den rückgabewert angewandt wird?
2. Wie löse ich das Problem mit dem unterschiedlichen Datumsformat beim Vergleich?
String sqlInitString = "SELECT * FROM User WHERE date BETWEEN " + to_date(GetStartDate()) AND to_date(GetEndDate());";
-
ad 2:
a) du verwendest eine Spalte mit Datentyp "datetime" (kann auch anders heissen), dann weiss der SQL Server dass es ein "datum + zeit" Feld ist, und kann entsprechend damit umgehen
b) du legst das Datum im Format "YYYY-MM-DD hhss" als string ab, dann funktionieren Vergleiche und Sortierung auch "ganz von selbst" richtig
-
Also anständig macht man das so:
In der Tabelle ist die Spalte vom Typ smalldatetime,
die Methoden geben DateTime zurück und kein string,
die Parameter setzt du (wie du es immer machen solltest) mit SqlParams und bastelst keinen string zusammen.