Как я могу сделать сумму двух полей чч: мм в SQL Server? - PullRequest
0 голосов
/ 02 ноября 2011

Я должен добавить минуты столбца, а затем преобразовать их в часы. Я нашел запрос для перевода минут в часы:

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 Project=@Project,Name_Emp=@Name_Emp,Hours=@Hours,Date=@Date,assigned_by=@assigned_by
select cast(@mins/60 as varchar(5)) + ':' + RIGHT('0' + cast(@mins%60 as varchar(2)), 2)
END 

Но не удачно .... Пожалуйста, помогите, если кто-нибудь может установить этот 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. Сколько человек работало над конкретным проектом ...

Ответы [ 2 ]

0 голосов
/ 02 ноября 2011

Не очень понятно, что вы собираетесь здесь делать. Вопрос звучит так: «Как я могу сделать сумму двух полей ЧЧ: ММ», но из ваших примеров кода кажется, что вам не нужно добавлять два поля ЧЧ: ММ, а вместо этого показывать общее количество минут в формате ЧЧ: ММ.

В любом случае, при условии последнего, это то, что вы могли бы сделать:

SELECT SEC_TO_TIME(SUM(hours) * 60)
FROM Task_SheetTbl 
WHERE Project = 'abc'
AND Name_Emp = 'def'
AND ...
...
;

где SUM (часы) даст вам @mins в вашем коде.

Кроме того, приведенный вами код SP не является допустимым синтаксисом в MySQL. Вы уверены, что можете создать этот SP?

0 голосов
/ 02 ноября 2011

Я не уверен, почему вам может понадобиться создать SP, но этот запрос должен работать в соответствии с заголовком вашего вопроса "как мне добавить"

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

Где 22:00:00 может бытьваш столбец времени начала ... и 7200 - секунды, необходимые для завершения чего-либо.

...