首页 > 解决方案 > 我在 SQL Server 中有数据类型 varchar 的 hh:mm 格式的 x 列,我想对该“x”列执行求和

问题描述

我在 SQL Server中有数据类型格式的列x,我想对该列执行求和。hh:mmvarcharx

我创建了一个用户定义的函数来将总最小值转换为hh:mm格式。

然后我尝试执行sum计算总持续时间:

sum(cast(new_totalmin AS Int)) 
  1. 我也希望 HH:mm 的总数与示例 4:20 +1:10 完全相同

5:30 5 小时: 30 分钟

  1. 或者我可以在这里做一件事 insted hh:mm 我保持列原样,即 totalmin 作为 int 一旦总和 cal insted hh:mm (hh.mm 对我来说也是十进制的 PSB 对我来说没问题' :' 或 '.' 格式)(60 分钟 --> 1:00 --> 1.00

          90 min -->  1:30   -->1.30
         ---------------------------------
    

    总和 --> 150 分钟 --> 2:30 --> 2.30)

但它没有用。

我有一个错误,比如

将 varchar 值“01:00”转换为数据类型 int 时转换失败

标签: sqlsql-server

解决方案


DECLARE @SampleData AS TABLE (HourMinutes VARCHAR(10));

INSERT INTO @SampleData VALUES ('4:32');
INSERT INTO @SampleData VALUES ('5:28');
INSERT INTO @SampleData VALUES ('6:00');
INSERT INTO @SampleData VALUES ('7:10');

SELECT * FROM @SampleData

SELECT SUM(datediff(minute, 0, HourMinutes)) TotalMinute 
FROM @SampleData

您将获得以下输出

在此处输入图像描述


推荐阅读