-- ***********************************************
-- 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