我有一个名为"WrkHrs"的列,数据类型是time(hh:mm:ss).我想总结一下员工的工作时间.但由于是时候了,数据类型sql server不允许我使用sum(columnname).

如何汇总SQL查询中的时间数据类型?

推荐答案

SELECT EmployeeID, minutes_worked = SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs)) 
FROM dbo.table 
-- WHERE ...
GROUP BY EmployeeID;

你可以在前端将其格式化.或者在T-SQL中:

;WITH w(e, mw) AS
(
    SELECT EmployeeID, SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs)) 
    FROM dbo.table 
    -- WHERE ...
    GROUP BY EmployeeID
)
SELECT EmployeeID = e,
  WrkHrs = RTRIM(mw/60) + ':' + RIGHT('0' + RTRIM(mw%60),2)
  FROM w;

但是,您使用了错误的数据类型.TIME用于表示时间点,而不是间隔或持续时间.将他们的工作时间存储在StartTimeEndTime两个不同的列中难道没有意义吗?

Database相关问答推荐

更新数据后,TableView停止按搜索栏进行筛选

如何使用聚合管道从对象数组中获取正确的百分比

如何让 Google Drive Electron 表格像 MySQL 数据库一样工作吗?

什么是 CREATE VIEW IF NOT EXISTS in postgresql

优雅地处理 EJB/JPA 环境中的约束冲突?

Postgresql:优化数字字段的列大小

Android:我可以对多个数据库文件使用一个 SQLiteOpenHelper 类吗?

如何将 PHP 会话数据保存到数据库而不是文件系统中?

PHP 和 MySQL Select 单个值

避免从网站数据库中data scraping数据抓取?

ORA-00060: deadlock detected while waiting for resource

SQLite3 不支持外键约束吗?

使用多个数据库模式的 JPA

你如何记录你的数据库 struct ?

如何在文件系统中存储图像

如何使用 localdb 在 Code First 中查看数据库图

将文本列设为唯一键

为什么负 id 或零被认为是不好的做法?

MongoDB 是否支持浮点类型?

Spring data : CrudRepository 的保存方法和更新