2011-11-02 4 views
0

난 열의 분을 추가하고 몇 시간으로 변환해야합니다. 분을 시간으로 변환하는 쿼리를 찾았습니다.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

이이 값으로 설정되어

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 
) 

테이블 스크립트를 만듭니다 corect 수 있는지 HLP Plz은 ....

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 

하지만이 성공적인 SP는 다음과 같은 시도

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 

결과 == 얼마나 많은 시간이 특정 프로젝트에서 근무했는지 직원 수에 따라 얼마나 많은 시간이 걸리는지 알 필요가있는 것처럼 각 검색에 나타나는 모든 시간 값을 추가해야합니다.

+0

좀 더 구체적으로 기재 할 수 있습니까? 테이블 정의 (CREATE TABLE 문), 일부 데이터 (INSERT 문), 원하는 결과를 표시하십시오. – Devart

+0

이것은 내 테이블 만들기 스크립트 – mona

+0

어디에 있나요? 질문에이 모든 것을 추가하십시오. – Devart

답변

0

저는 아닙니다 당신이 SP를 작성해야 할 수도 있지만,이 쿼리는 질문 제목에 따라 작동해야하는 이유를 확인 ..

SELECT SEC_TO_TIME(TIME_TO_SEC('22:00:00')+7200) AS totaltime 

이 22시 0분 0초 당신의 시작 시간 열이 될 수있는 곳 "어떻게 추가 할"및 7200입니다 뭔가를 완료하는 데 걸리는 초.

0

여기서 무엇을하려는 의도인지는 분명하지 않습니다. 질문에 "어떻게 두 개의 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를 만들 수 있습니까?

관련 문제