Sql server 按下午3点到下午3点的间隔进行TSQL分组

Sql server 按下午3点到下午3点的间隔进行TSQL分组,sql-server,tsql,Sql Server,Tsql,我试图在下午3点到3点的时间间隔内获得今年每天的订单数量 Select cast(order_datetime as date) ,count(*) from order_table where order_datetime> '01/01/2015 15:00' group by ????? 我通常分组 cast(order_datetime as date) ---for 12am to 12am 但是我想从下午3点到下午3点。这可能是我正在寻找的解决方案。我已经获取了一个样本数据

我试图在下午3点到3点的时间间隔内获得今年每天的订单数量

Select cast(order_datetime as date) ,count(*)
from order_table
where order_datetime> '01/01/2015 15:00'
group by ?????
我通常分组

cast(order_datetime as date) ---for 12am to 12am

但是我想从下午3点到下午3点。

这可能是我正在寻找的解决方案。我已经获取了一个样本数据和一个表变量@t来解决它。表中的col1表示您的问题

SET DATEFORMAT DMY
DECLARE @t TABLE
(
Id int,
Name varchar(11),
[Col1] DateTime
)

INSERT INTO @t
VALUES(1,'ABC','22/12/2012 03:45:00 PM'),(2,'SD','22/12/2012 03:01:00 PM'),(3,'SDSA','22/12/2012 02:01:00 PM'),(4,'ASDF','22/12/2012 03:30:00 PM'),(5,'ASWER','22/12/2012 02:30:00 PM')
,(11,'NARI','21/12/2012 03:40:00 PM')

SELECT CASE  WHEN CAST(COL1 AS TIME) >'15:00:00' THEN CAST(DATEADD(DAY,1,Col1) AS date) ELSE CAST(Col1 AS DATE) END AS ORDERS,COUNT(*) AS COUNT
FROM @t
GROUP BY  CASE  WHEN CAST(COL1 AS TIME) >'15:00:00' THEN CAST(DATEADD(DAY,1,Col1) AS date) ELSE CAST(Col1 AS DATE) END

我不明白这怎么适用于这个问题。这个问题是关于10分钟间隔的分组。我尝试了分组(datepart(hour,order\u datetime)/24),但没有成功。几天前我回答了这样一个问题。group by只需要一个比较开始时间,然后根据它执行datediff(hh…)/24。编辑:这还取决于表的结构,因此您可能需要比datediff更具体(hh…像datediff(mi…-答案是用每小时的datetime构建的。谢谢!成功了!
group by datediff(hh,'1900-01-01 15:00',order_datetime)/24