在 SQL 服务器 table 中按天计算的总分钟数

Sum minutes by day in SQL Server table

我目前在 Microsoft SQL Server Management Studio 工作。我有 2 张桌子。 Table1PartNumber 组成为 varcharTimesmalldatetimeTable2Minutes 组成为 float , PartNumber 作为 Varchar, Sequence 作为 int.

我正在尝试按天汇总分钟数,每天有多个条目,并且它们有一个时间戳,其中包括一天中的时间。我正在尝试列出一个日期范围内的所有日期,它将显示每天的总分钟数。

这是我的代码:

SELECT Sum([MINUTES]) as total, Time from Table1 left join 
Table2 on
Table1.PartNumber + '-' = Table2.PART_NUMBER
WHERE sequence = 25 AND [MINUTES] > 30 And partNumber IS NOT NULL
group by Time

此代码显示每个订单项。例如,我可能有日期为“2015-04-22”的 3 个条目,但我的时间戳为“2015-04-22 13:42:00”、“2015-04-22 10:21:00”和“ 2015-04-22 13:21:00。”我需要代码来添加“2015-04-22”中所有条目的小步舞曲,然后向我显示我可以更改的总时间。

使用CONVERT(),像这样:

SELECT 
    SUM([MINUTES]) AS total,
    CONVERT(CHAR(8), Time, 112) AS Time
FROM 
    Table1 
LEFT JOIN 
    Table2 
        ON Table1.PartNumber + '-' = Table2.PART_NUMBER
WHERE 
    sequence = 25
    AND [MINUTES] > 30 
    And partNumber IS NOT NULL
GROUP BY
    CONVERT(CHAR(8), Time, 112)

请记住,如果您想要 时间> 30 分钟的部分,您需要将其移至HAVING 子句。 112 指定 ISO 日期格式,例如20150515.