Sorry für die faule Frage. Ich möchte wissen die SQL Server 2005-Syntax fürSQL Server Datetime WHERE Klausel
SELECT *
FROM myTable
WHERE myDateTimeField > "4am this morning"
Vielen Dank im Voraus für Ihre Hilfe.
Sorry für die faule Frage. Ich möchte wissen die SQL Server 2005-Syntax fürSQL Server Datetime WHERE Klausel
SELECT *
FROM myTable
WHERE myDateTimeField > "4am this morning"
Vielen Dank im Voraus für Ihre Hilfe.
Verwendung:
SELECT *
FROM myTable
WHERE myDateTimeField > DATEADD(hh, 4, DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 0))
Dieses:
DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
... eine DATETIME- um Mitternacht des aktuellen Tages zurückzukehren. Also fügt die äußere DATEADD vier Stunden zu diesem Datum um Mitternacht hinzu, um Ihnen heute Morgen um 4 Uhr ein DATETIME zu geben.
Referenz:
Versuchen
SELECT * FROM myTable
WHERE myDateTimeField >
DateAdd(hour, 4, DateAdd(day, DateDiff(day, 0, getdate()), 0))
Und, anders zu sein und wohl kürzer/besser lesbar als die anderen Angebote:
SELECT *
FROM myTable
WHERE myDateTimeField >
cast(convert(varchar, getdate(), 101) + ' 4AM' as datetime)
Natürlich möchten Sie nicht wirklich 4AM fest codieren, aber wenn Sie tun, ist dieser Weg nett und offensichtlich, wenn er Ihre Absicht übermittelt.
FYI: Die schnellste Methode der Datumstrunkierung SQL Server ist die Verwendung des DATEADD/DATEDIFF-Ansatzes. –
@omg, Sie sind schnell –