gpt4 book ai didi

sql-server - 获取选定日期范围内的平均小时周期

转载 作者:行者123 更新时间:2023-12-03 00:18:45 31 4
gpt4 key购买 nike

我有一个订单表,其中恰好有一列数据类型“Datetime”,其中包含产品到达公司(客户)的日期和时间,并且我有多种类型的用户他们的类型如下: 员工、公司所有者(客户)、调度员等

我已成功使用以下 T-SQL 查询获取针对公司所有者的特定用户的订单的日期范围:

declare @username varchar(130), @DateFrom varchar(10), @DateTo varchar(10)
set @username = 'chabow';set @DateFrom='4/01/2018';set @DateTo='6/30/2018'
;with cte as (
select count(o.ArrivalDate) as orders_count, cast(o.ArrivalDate as Date) as ArrivalDate
from view_MembershipUsers msu
inner join XrefCompanyUsers rfu on msu.UserName = rfu.UserName
inner join Company f on f.CompanyID = rfu.CompanyID
inner join orders o on o.CompanyID = f.CompanyID
where msu.UserName = @username and
(o.ArrivalDate >= @DateFrom and o.ArrivalDate <= @DateTo)
group by cast(o.ArrivalDate as Date)
)
select *,
(select max(orders_count)+2 from cte) as Total
from cte
order by ArrivalDate

我实际需要检索的是产品到达的平均小时以及我使用上述查询从选定日期范围检索到的数据。我不知道如何在不获得日期差异的情况下获得此日期范围内的平均小时数,因为我需要读取每一行的“日期”以获得最可能准确的平均小时数。

为了方便大家帮助我,我提取了一些示例日期。

create table SelectedData
(ArrivalDate date, ActualDateTime datetime)
insert into SelectedData values
('2018-04-01','2018-04-01 20:45:00.000'),
('2018-04-04','2018-04-04 19:00:00.000'),
('2018-04-05','2018-04-05 14:00:00.000'),
('2018-04-05','2018-04-05 14:23:00.000'),
('2018-04-05','2018-04-05 18:30:00.000'),
('2018-04-06','2018-04-06 12:30:00.000'),
('2018-04-06','2018-04-06 18:08:00.000')

declare @DateFrom varchar(10), @DateTo varchar(10)
set @DateFrom='4/01/2018';set @DateTo='6/30/2018'

select *
from SelectedData
order by ArrivalDate

感谢和问候。

最佳答案

将类型更改为 DateTime,而不是日期。像这样:

drop table SelectedData
create table SelectedData
(ArrivalDate date, ActualDateTime datetime)
insert into SelectedData values
('2018-04-01','2018-04-01 20:45:00.000'),
('2018-04-04','2018-04-04 19:00:00.000'),
('2018-04-05','2018-04-05 14:00:00.000'),
('2018-04-05','2018-04-05 14:23:00.000'),
('2018-04-05','2018-04-05 18:30:00.000'),
('2018-04-06','2018-04-06 12:30:00.000'),
('2018-04-06','2018-04-06 18:08:00.000')

declare @DateFrom varchar(10), @DateTo varchar(10)
set @DateFrom='4/01/2018';set @DateTo='6/30/2018'

select avg(datePart(hour, ActualDateTime))
from SelectedData
--order by ArrivalDate

然后获取日期中的小时数,然后求平均值。

关于sql-server - 获取选定日期范围内的平均小时周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52004667/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com