Sql server 基于时间段的订单列表

Sql server 基于时间段的订单列表,sql-server,datetime,group-by,orders,Sql Server,Datetime,Group By,Orders,我有一个表orderdetails表,我想要从2015年1月6日到2015年1月6日的订单列表,根据00-01和01-02这样的时间段,每天低于60个订单 select convert(datetime, Convert(varchar(50), OrderDate, 101)) as dateorder, count(orderid) as ordercount from orderdetails where OrderDate between convert(date

我有一个表orderdetails表,我想要从2015年1月6日到2015年1月6日的订单列表,根据00-01和01-02这样的时间段,每天低于60个订单

select
  convert(datetime, Convert(varchar(50), OrderDate, 101)) as dateorder,
  count(orderid) as ordercount   
from
  orderdetails 
where
  OrderDate between convert(datetime,Convert(varchar(50),'6/01/2015',101)) and convert(datetime,Convert(varchar(50),'06/30/2015',101))   
  and transactionid is not null 
  and DATEPART(HOUR,OrderDate) between '1' and '2'   
group by
  convert(datetime, Convert(varchar(50), OrderDate, 101))  
having
  count(orderid) < 60

但是这个查询显示了错误的列表。。。它不显示在countorderid<60订单中,它显示的是总订单,不低于每天订单60…

以表格形式显示您的期望输出。时间段如00-01和01-02。这不清楚。为什么订单表transactionid将为空。
select * from (
select
 convert(datetime, Convert(varchar(50), OrderDate, 101)) as dateorder,
 count(orderid) as ordercount   
 from
 orderdetails 
 where
 OrderDate between convert(datetime,Convert(varchar(50),'6/01/2015',101)) and convert(datetime,Convert(varchar(50),'06/30/2015',101))   
and transactionid is not null 
and DATEPART(HOUR,OrderDate) between '1' and '2'   
group by
 convert(datetime, Convert(varchar(50), OrderDate, 101)) ) t

where ordercount   < 60