返回时间差值。大于1天,返回天;小于1天且大于60分钟返回小时;小于60分钟大于1分钟,返回分钟;小于60秒,返回秒


-- =============================================
-- 返回时间差值。大于1天,返回天;小于1天且大于60分钟返回小时;小于60分钟大于1分钟,返回分钟;小于60秒,返回秒
-- =============================================
ALTER FUNCTION [dbo].[F_BACK_DIFF_TIME]
(
    -- Add the parameters for the function here
    @TIME VARCHAR(50)
)
RETURNS VARCHAR(50)
AS
BEGIN
    -- Declare the return variable here
    DECLARE @DIFF_TIME VARCHAR(50)

    DECLARE @XTSJ VARCHAR(20)
    SET @XTSJ = CONVERT(VARCHAR(20),GETDATE(),120)
    
    IF DATEDIFF(MINUTE,@TIME,@XTSJ) < 1 --小于60秒(1分钟)
    BEGIN
    
         SELECT @DIFF_TIME = CAST(FLOOR(( DATEDIFF(SECOND, @TIME, @XTSJ)  ) )  AS VARCHAR(10)) + '秒前'
    
    END
    
    IF DATEDIFF(MINUTE,@TIME,@XTSJ) < 60 AND DATEDIFF(MINUTE,@TIME,@XTSJ) >= 1 --小于60分钟(1小时)大于1分钟
    BEGIN
    
         SELECT @DIFF_TIME = CAST(FLOOR(( DATEDIFF(MINUTE, @TIME, @XTSJ) % 1440 ) ) AS VARCHAR(10)) + '分钟前'
    
    END
    
    IF DATEDIFF(MINUTE,@TIME,@XTSJ) < 1440 AND DATEDIFF(MINUTE,@TIME,@XTSJ) >=60  --小于1天且大于等于60分钟(1小时)
    BEGIN
    
         SELECT @DIFF_TIME = CAST(FLOOR(( DATEDIFF(MINUTE, @TIME, @XTSJ) % 1440 ) / 60) AS VARCHAR(10)) + '小时前'
    
    END
    
    IF DATEDIFF(MINUTE,@TIME,@XTSJ) >= 1440  --大于等于1天
    BEGIN
    
         SELECT @DIFF_TIME = CAST(FLOOR(DATEDIFF(MINUTE, @TIME, @XTSJ) / 1440) AS VARCHAR(10)) + '天前'
    
    END
    
    
    
    -- Return the result of the function
    RETURN @DIFF_TIME

 

 

END

 

 

不够一小时的

不够一天的

一天以上的