Wie vergleichen nur date-Teil, wenn die Lieferung Datum ist heute
Ich versuche, einen Bericht zu erstellen, der bekommt von Datensätzen aus einer SQL Server-Datenbank, wo der Liefertermin ist heute.
Habe ich versucht,
select * from (tablename)
where delivery_date = getdate()
Zwar, dass mir nicht alle Fehler, es didn ' T gib mir alle Datensätze, die entweder.
Ich gehe davon aus, dass es ist, weil alle Termine werden wie:
2016-03-15 00:00:00.000
Vielleicht muss ich abschneiden, das Datum zu entfernen, das Zeit-Stempeln und dann versuchen?
- Du kannst
getdate()
zudate
- dies cut-off-Zeit. Oder verwenden Sie das Datum Bereich, wenndelivery_date
gespeichert, die möglicherweise enthalten auch die Zeit (wenn es so ist würde ich vorschlagen, diesen Ansatz verwenden, statt casting auf beiden Seiten zudate
).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, eine Abfrage, wie unten
Auch wenn alle Liefertermine, die Zeit haben, zum Teil wie
00:00:00.000
sicher dannfunktionieren würde, wie gut.
Wenn delivery_date ist immer Mitternacht (
00:00:00.000
), dann vergleichen Sie es wie folgt:Mit
datediff
wie dieses ist eine schnelle Weise, kürzen Sie die Zeit Teil eines datetime-Werts.Ich würde nur 2 params. Eine für
StartTime
und eine fürEndTime
und verwenden Sie diese in meiner Abfrage.Yo entfernen müssen Sie die Zeit Teil der delivery_date Feld UND die GETDATE () - Wert.
Versuchen Sie dies: