-- =============================================
-- 返回时间差值。大于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
不够一小时的
不够一天的
一天以上的