Ich habe eine Methode, die eine ObjectQuery akzeptiert und Where-Klauseln hinzufügt, abhängig davon, ob sie Werte für verschiedene Filterparameter empfängt. Die Methode muss eine ObjectQuery zurückgeben. Wie kann ich einen grundlegenden Datumsvergleich durchführen, z. wo dateX < DatumY.Vergleichen von Date/DateTime in Entity SQL Where-Klausel
Das ist mein aktueller Code ist:
if (myDateFilter != null)
{
query = query.Where(
string.Format(
"it.ExpireDate < cast('{0}' as System.DateTime)",
myDateFilter));
}
Mit myDateFilter einen Wert von DateTime.Now hat, dieser Code sagt: System.Data.SqlClient.SqlException: Die Umwandlung eines varchar Datentypen Datumsdaten Typ ergab einen Wert außerhalb des Bereichs.
Alle anderen Parameter sind String- oder Integer-Filter, also war es kein Problem zu implementieren. Irgendwelche Ideen??
OK, es sieht aus wie ich versuche, ein Datum zu übergeben, das die Zeichenfolge Form von '31/7/2009 'nimmt, die bricht, aber wenn ich "1/1/2009" passiere, funktioniert es, also denke ich, dass es a Unterschied in den Kulturen von whats in der db und was geht in der Anwendung. Wie kann ich sie im selben Format vergleichen? Oder in irgendeiner kulturinvarianten Weise ... – andrej351