如何在SQL Server中完成两个hh:mm字段的总和?
问题描述:
我必须添加列的分钟数,然后将它们转换为小时。我发现将分钟转换为小时的查询:如何在SQL Server中完成两个hh:mm字段的总和?
declare @mins int
set @mins = 750.00
select cast(@mins/60 as varchar(5)) + ':' + RIGHT('0' + cast(@mins%60 as varchar(2)), 2) as [TotalTime]
enter code here
但我无法添加分钟数。我想我需要创建存储过程,但是,我无法这样做。请帮忙。
我曾尝试以下SP
USE [MailEmployeeDb]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[AddHrs]
(
@Project nvarchar(50),
@mins int,
@assigned_by nvarchar(50),
@Emolyee_id nvarchar(50),
@Date datetime,
@Status varchar(50),
@Hours varchar(50),
@Name_Emp varchar(50)
)
AS
BEGIN
@mins = select sum(hours) from Task_SheetTbl where [email protected],[email protected]_Emp,[email protected],[email protected],[email protected]_by
select cast(@mins/60 as varchar(5)) + ':' + RIGHT('0' + cast(@mins%60 as varchar(2)), 2)
END
但不是全成.... PLZ HLP如果任何人都可以corect该SP
创建表脚本
CREATE TABLE [dbo].[Task_SheetTbl](
[Emolyee_id] [nvarchar](50) NOT NULL,
[Project] [nvarchar](50) NOT NULL,
[Date] [datetime] NOT NULL,
[Assigned_By] [nvarchar](50) NOT NULL,
[Status] [varchar](50) NOT NULL,
[Comments] [nvarchar](100) NULL,
[Task] [nvarchar](100) NULL,
[Hours] [varchar](50) NULL
)
此设定值
monika erp 01.11.2011 5:31:01 AM mmm Completed hhhhhhhhh mmm 750.00
mona erp 01.11.2011 12:00:00 AM me ccc cccc cccc 700.0
son ehandel 01.11.2011 12:00:00 AM mon rrr rrrr rrr 30.00
monika erp 02.11.2011 10:56:44 AM jjjjj Completed nop nnnnn 0.50
NULL NULL NULL NULL NULL NULL NULL NULL
结果==我需要添加所有的小时数值出现在各自的搜索上,就像我需要知道雇员承担多少小时erp项目。多少小时员工在特定项目上工作..
答
我不是知道为什么你可能需要创建一个SP,但此查询应该按照你的问题标题作品“我怎么添加”
SELECT SEC_TO_TIME(TIME_TO_SEC('22:00:00')+7200) AS totaltime
凡22:00:00可能是你的开始时间栏..和7200完成某件事所需的秒数。
答
这是不是很清楚你打算在这里做什么。问题是“我怎样才能完成两个HH:MM字段的总和”,但是从您的代码示例看来,您似乎不需要添加两个HH:MM字段,而是以HH:MM格式显示总分钟数。
不管怎么说,假设是后者,这是你可以做什么:
SELECT SEC_TO_TIME(SUM(hours) * 60)
FROM Task_SheetTbl
WHERE Project = 'abc'
AND Name_Emp = 'def'
AND ...
...
;
其中,SUM(小时)会给你在你的代码@mins。
此外,您提供的SP代码在MySQL中似乎不是有效的语法。你确定你能够创建该SP?
你能更具体吗?显示你的表定义(CREATE TABLE语句),一些数据(INSERT语句),所需的结果。 – Devart
这是我创建的表格脚本 – mona
它在哪里?只需在你的问题中添加所有这些。 – Devart