2017-04-15 59 views
0

我試圖從今天的日期到凌晨4點的下一個日期之間獲得訂單數據。在一定的時間段內獲取訂單數據

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 

等等

我怎樣才能做到這一點?

查詢

select * From Orders where BETWEEN and 
+0

顯示樣本數據和預期的結果。 –

+0

哪個sqlserver版本? – McNets

+0

版本是2012年 – ayman

回答

0

在SQL-Server 2008和上面:

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 

基本上增加一天,4小時起始日期。

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

要獲得兩個日期和具體時間之間的訂單:

SELECT * FROM Orders WHERE date BETWEEN '14-04-17 00:00:00.00' AND '15-04-17 03:59:59.99' 
相關問題