1. 程式人生 > 實用技巧 >SQL標量值函式——由秒返回時間格式字串

SQL標量值函式——由秒返回時間格式字串

--  ***********************************************
--  Author            :    
--  Create Date    :
--  Description     :   由秒返回時間格式字串     
--  ***********************************************
CREATE FUNCTION [dbo].[fun_GetDateStr](@second BIGINT)
RETURNS NVARCHAR(100)
AS
BEGIN

    DECLARE @Result NVARCHAR
(100) DECLARE @hour INT SELECT @hour=0 DECLARE @minute INT SELECT @minute DECLARE @seconds INT SELECT @seconds=0 IF(@second>0) BEGIN --1. 1 計算有多少小時 SELECT @hour=CONVERT(INT,ROUND(CONVERT(MONEY,@second)/3600,0,1)) DECLARE @tmp INT SELECT @tmp=0 --
1.2 排除小時後還剩餘多少秒 SELECT @tmp=@second-3600*@hour --2.1 計算有多少分鐘 SELECT @minute=CONVERT(INT,ROUND(CONVERT(MONEY,@tmp)/60,0,1)) --2.2 排除分鐘後有剩餘多少秒 SELECT @tmp=@tmp-60*@minute SELECT @seconds=@tmp --3.1 DECLARE @hourStr NVARCHAR(100) SELECT @hourStr='' SELECT @hourStr
=CASE WHEN @hour>0 THEN CONVERT(NVARCHAR(100),@hour) + '小時' ELSE '' END DECLARE @minuteStr NVARCHAR(100) SELECT @minuteStr='' SELECT @minuteStr=CASE WHEN @minute>0 THEN CONVERT(NVARCHAR(100),@minute) + '分鐘' ELSE '' END DECLARE @secondStr NVARCHAR(100) SELECT @secondStr='' SELECT @secondStr=CASE WHEN @seconds>0 THEN CONVERT(NVARCHAR(100),@seconds) + '' ELSE '' END SELECT @Result=@hourStr+@minuteStr+@secondStr END END ELSE BEGIN SELECT @Result='' END