2017-04-15 45 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' 
相关问题