Date - Vergleich
Casablanca
- datenbank
Hallo Form,
ich muss euch leider noch einmal um Hilfe bitte.
Ich arbeite mit Dynamic Linq und muss da zwei Daten miteinander vergleichen. Das erste Datumkommt aus der Datenbank und sieht so aus "2014-07-31 03:12:00.000". Das Zweite Datum bekomme ich von den Benutzern und sieht es so uas "01.08.2014".
Die aus meinem Linq erzeuget SQL-Anweisung sieht so aus:
SELECT
[Extent1].[MyId] AS [MyId],
[Extent1].[TimeStamp] AS [TimeStamp],
[Extent1].[Name] AS [Name]
FROM [dbo].[MyTable] AS [Extent1]
WHERE (249 = [Extent1].[MyId]) AND ((DATEPART (year, [Extent1].[TimeStamp])) >= 2014) AND ((DATEPART (year, [Extent1].[TimeStamp])) <= 2014) AND
((DATEPART (month, [Extent1].[TimeStamp])) >= 7) AND ((DATEPART (month, [Extent1].[TimeStamp])) <= 8) AND ((DATEPART (day, [Extent1].[TimeStamp])) >= 31) AND
((DATEPART (day, [Extent1].[TimeStamp])) <= 2)
ORDER BY [Extent1].[TimeStamp] ASC
Das ganze funktionier auch einwandfrei, solange die Daten innerhalb eines Monats liegen. Wenn aber die Daten montasübergreifend sind, wie der letzte Teil der SQL-Anweisung oben zeigt,
((DATEPART (day, [Extent1].[TimeStamp])) >= 31) AND
((DATEPART (day, [Extent1].[TimeStamp])) <= 2)
bricht dann alles zusammen, also kein Ergebniss wird zurückgeliefert. Der Tag kann nicht größer 31 und kleiner 2 sein.
Gibt es einen anderen Weg, die Daten zu vergleichen.
Danke im Voraus.
Om nah hoo pez nyeetz, Casablanca!
Ich arbeite mit Dynamic Linq und muss da zwei Daten miteinander vergleichen. Das erste Datumkommt aus der Datenbank und sieht so aus "2014-07-31 03:12:00.000". Das Zweite Datum bekomme ich von den Benutzern und sieht es so uas "01.08.2014".
Gibt es einen anderen Weg, die Daten zu vergleichen.
Hast du die Möglichlkeit, das zweite Datum in einen Timestamp umzuwandeln?
Matthias
Hi,
danke für deine Antwort. Ja das mach ich an dieser Stelle auch.
Gruß
Om nah hoo pez nyeetz, Casablanca!
danke für deine Antwort. Ja das mach ich an dieser Stelle auch.
Dann vergleiche die Timestamps. Der kleinere liegt in der Vergangenheit des größeren.
Matthias
Hallo,
danke. Das ist machbar. Die daraus gewonnene SQL-Anweisung gibt in SQL-Server auch die gewünschten Resultate zurück. Das LINQ-Satetment selber gibt aber keine Rasultate zurück.
Und was soll dieser Unsinn mit "Om nah hoo pez nyeetz, Casablanca!"?
Gruß
Hallo,
Und was soll dieser Unsinn mit "Om nah hoo pez nyeetz, Casablanca!"?
vg ichbinich