查找 SQL Server 数据库中日期之间的差异(以小时为单位),并计算每天的总小时数

本文关键字:小时 为单位 每天 计算 数据库 Server SQL 日期 之间 查找 | 更新日期: 2023-09-27 17:56:51

我正在尝试根据我的项目要求对SQL Server数据库数据进行排序。我尝试了许多SQL查询来过滤数据,但没有一个正常工作。请帮助我完成工作。

我有一个包含 5 列的数据库表:ProductNameStartDateEndDateUsageQuantityCoststartdateenddate也是带有时间的日期,如果减去它们,它们会相差一小时。

同样,开始日期和结束日期的多个副本可用于一个充满数据的月份。我需要的是找出每天一个特定产品的总使用量和成本,并且还想找到该产品的使用小时数。

任何人都可以向我建议 sql 查询或找出结果的代码片段吗?

数据库中的日期如下所示

ProductName StartDate            EndDate              UsageQuantity Cost
 xyz        01-04-2015 00:00    01-04-2015 01:00         0.6258       .007
 sf         01-04-2015 00:00    01-04-2015 01:00
 de         01-04-2015 01:00    01-04-2015 02:00
df          01-04-2015 01:00    01-04-2015 02:00
            01-04-2015 02:00    01-04-2015 03:00
            01-04-2015 02:00    01-04-2015 03:00
            01-04-2015 03:00    01-04-2015 04:00
            01-04-2015 03:00    01-04-2015 04:00
            01-04-2015 04:00    01-04-2015 05:00
            01-04-2015 04:00    01-04-2015 05:00
            01-04-2015 05:00    01-04-2015 06:00
            01-04-2015 05:00    01-04-2015 06:00
            01-04-2015 06:00    01-04-2015 07:00
            01-04-2015 06:00    01-04-2015 07:00

只需帮助我分离日期和时间并计算每天的小时数即可。

提前致谢

查找 SQL Server 数据库中日期之间的差异(以小时为单位),并计算每天的总小时数

与此类似的内容作为起点

SELECT SUM(TIMESTAMPDIFF(SECOND,StartDate, EndDate)), SUM(UsageQuantity), SUM(Cost)
FROM tablename
GROUP BY ProductName, Date(StartDate);
CREATE PROCEDURE GetDaysUsageForProduct
(
    @ProductName varchar(100),
    @DateUsed    datetime
)
AS
BEGIN
    SELECT @DateUsed DateUsed, 
           ProductName, 
           SUM(UsageQuantity) TotalQuantityUsed,
           SUM(DATEDIFF(hh, StartDate, EndDate) HoursUsed
           SUM(Cost) TotalCost
      FROM myTable
     WHERE CONVERT(varchar(10), StartDate, 112) =  CONVERT(varchar(10), @Date, 112)
       AND ProductName = @ProductName
      GROUP BY ProductName
END
GO