[MS SQL] 將輸入的時間(分、秒)轉換成中文時間的函數
分享一個時間轉換函數,能將輸入的分鐘或秒數轉換為中文時間。
(適用MS SQL Server 2005 或以上)
EX: 86分 轉換為 1時26分
EX: 93秒 轉換為 1分33秒
用法:
(適用MS SQL Server 2005 或以上)
EX: 86分 轉換為 1時26分
EX: 93秒 轉換為 1分33秒
-- =================================================
-- Author: <huayu.lee>
-- Create date: <2012/05/16>
-- Description: <時間轉換函數>
-- 參數 @Format: <要轉換的參數的格式('MI','N':分鐘;'S':秒>
-- 參數 @intTime: <要轉換的參數>
-- Return: x時x分x秒
-- =================================================
ALTER FUNCTION [dbo].[uf_TimeTransToChinese]
(
@Format nvarchar(2),@intTime int
)
RETURNS nvarchar(20)
AS
BEGIN
DECLARE @ResultVar nvarchar(20)
DECLARE @hh int, @mm int, @ss int;
IF(@Format = 'S') BEGIN
--輸入為秒(秒 -> 時分秒)
SET @ResultVar = CONVERT(nvarchar,DATEADD(S,@intTime,0),108);
END
ELSE IF (@Format = 'MI' OR @Format = 'N') BEGIN
--輸入為分(分 -> 時分秒)
SET @ResultVar = CONVERT(nvarchar,DATEADD(MI,@intTime,0),108);
END
SET @hh = DATEPART(HOUR,@ResultVar);
SET @mm = DATEPART(MI,@ResultVar);
SET @ss = DATEPART(S,@ResultVar);
SET @ResultVar = '';
IF (@hh>0) BEGIN
SET @ResultVar = @ResultVar + CONVERT(nvarchar,@hh) + '時'
END
IF (@mm>0) BEGIN
SET @ResultVar = @ResultVar + CONVERT(nvarchar,@mm) + '分'
END
IF(@Format = 'S') BEGIN
SET @ResultVar = @ResultVar + CONVERT(nvarchar,@ss) + '秒'
END
RETURN @ResultVar
END
用法:
--分鐘數轉換 (輸出結果: 1時26分)
SELECT [dbo].[uf_TimeTransToChinese]('MI', 86)
--秒數轉換 (輸出結果: 2時45分39秒)
SELECT [dbo].[uf_TimeTransToChinese]('S', 9939)
留言
張貼留言