2017-04-15 3 views
0

Ich versuche, Bestelldaten zwischen heute bis zum nächsten Datum um 4:00 Uhr zu erhalten.Erhalten Bestelldaten zwischen bestimmten Zeitraum

Beispiel

Start date : 14/4/2017 12:00 AM 
End date : 15/4/2017 4:00 AM 

Start date : 16/4/2017 12:00 AM 
End date : 17/4/2017 4:00 AM 

etc ...

Wie kann ich das erreichen?

Abfrage

select * From Orders where BETWEEN and 
+0

anzeigen Beispieldaten und die gewünschten Ergebnisse. –

+0

welche sqlserver version? – McNets

+0

Version ist 2012 – ayman

Antwort

0

auf SQL-Server 2008 und höher:

declare @start_date datetime = cast(getdate() as date); 
declare @end_date datetime = dateadd(hour, 4, dateadd(day, 1, @start_date)) 

select * 
from orders 
where dt between @start_date and @end_date 

Grundsätzlich 1 Tag und 4 Stunden in den start_date.

declare @start_date datetime = cast(getdate() as date); 
declare @end_date datetime = dateadd(hour, 4, dateadd(day, 1, @start_date)) 

select @start_date, @end_date; 
GO 
 
(No column name) | (No column name) 
:------------------ | :------------------ 
15/04/2017 00:00:00 | 16/04/2017 04:00:00 

dbfiddle here

0

Um Aufträge zwischen zwei Daten und bestimmte Zeit zu erhalten:

SELECT * FROM Orders WHERE date BETWEEN '14-04-17 00:00:00.00' AND '15-04-17 03:59:59.99' 
Verwandte Themen