2017-10-16 39 views
-2

我想在MySQL中使用存儲過程將小時轉換爲分鐘。例如,我得到的輸出爲3小時15分鐘。我需要將它轉換爲195分鐘。我嘗試使用多個案例,但沒有爲我工作......你能幫我,如果你有任何代碼來解決這個?在mySQL中的存儲過程

+0

爲什麼你需要一個存儲過程。只需將小時數乘以60並添加分鐘數,即可獲得答案。 –

+0

感謝您的回覆Hatim Stovewala!但是,實際情況是,我將在數據庫字段中獲得xx小時xx分鐘的輸出。我需要將其轉換爲分鐘並將其存儲在另一個字段中。所以我需要這個場景的代碼。 –

+0

@Vivek Varma請分享表格結構和一些示例數據作爲格式化文本。 –

回答

0

您可以使用函數來達到此目的。

​​

調用該函數:

SELECT toMinutes(1,1); 
0

我的工作要求,並能成功地創建一個函數如下!

/****** Object: UserDefinedFunction [dbo].[BUSINESS_DURATION_MINTS_FN] Script Date: 10/17/2017 12:22:12 PM ******/ 
SET ANSI_NULLS OFF 
GO 

SET QUOTED_IDENTIFIER ON 
GO 


ALTER FUNCTION [dbo].[BUSINESS_DURATION_MINTS_FN] 
(@string varchar(100)) 
RETURNS INT 
AS 



BEGIN 
DECLARE @total_mints INT 
DECLARE @hours INT 
DECLARE @Mints INT 
IF @string IS NOT NULL 
BEGIN 
SET @string = REPLACE(UPPER(@string),'HOURS','HOUR') 
SET @string = REPLACE(UPPER(@string),'MINUTES','MINUTE') 
IF ((CHARINDEX(UPPER('HOUR'),UPPER(@string))!=0) AND (CHARINDEX(UPPER('MINUTE'),UPPER(@string))!= 0)) 

    BEGIN 
    SET @hours = CONVERT(INT,SUBSTRING(@string,1, (CHARINDEX(UPPER('HOUR'), UPPER(@string))-2))) 
    SET @Mints = CONVERT(INT,SUBSTRING(@string,(CHARINDEX(UPPER('HOUR'),UPPER(@string))+4),(CHARINDEX(UPPER('MINUTE'),UPPER(@string))-(CHARINDEX(UPPER('HOUR'), UPPER(@string))+5)))) 
    END 


    IF ((CHARINDEX(UPPER('HOUR'),UPPER(@string))=0) AND (CHARINDEX(UPPER('MINUTE'),UPPER(@string))!= 0)) 
    BEGIN 
    SET @hours = 0 
    SET @Mints = CONVERT(INT,SUBSTRING(@string,1, (CHARINDEX(UPPER('MINUTE'), UPPER(@string))-2))) 
    END 


    IF ((CHARINDEX(UPPER('HOUR'),UPPER(@string))!=0) AND (CHARINDEX(UPPER('MINUTE'),UPPER(@string))=0)) 
    BEGIN 
    SET @hours = CONVERT(INT,SUBSTRING(@string,1, (CHARINDEX(UPPER('HOUR'), UPPER(@string))-2))) 
    SET @Mints = 0 
    END 

    IF ((CHARINDEX(UPPER('HOUR'),UPPER(@string))= 0) AND (CHARINDEX(UPPER('MINUTE'),UPPER(@string))=0)) 
    BEGIN 
    SET @hours = 0  
    SET @Mints = 0 
    END 

    SET @total_mints = @hours*60 + @Mints 


    END 
    IF @string IS NULL 
    BEGIN 
    SET @total_mints = NULL 

    END 
    RETURN @total_mints 

END 


GO 
+0

我無法在存儲過程中調用此函數。任何人都可以幫助我? –

+0

從SP調用函數時會出現什麼錯誤? –