2010-12-08 19 views

Antwort

3

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:

1

Versuchen

SELECT * FROM myTable 
WHERE myDateTimeField > 
     DateAdd(hour, 4, DateAdd(day, DateDiff(day, 0, getdate()), 0)) 
+0

@omg, Sie sind schnell –

1

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.

+0

FYI: Die schnellste Methode der Datumstrunkierung SQL Server ist die Verwendung des DATEADD/DATEDIFF-Ansatzes. –