[DATABASE] Chia sẽ hàm định dạng ngày giờ Like Facebook
Xin chào các bạn bài viết hôm nay mình sẽ chia sẽ đến các hàm định dạng format ngày giờ giống Facebook trong Sqlserver.
[DATABASE] FORMAT DATETIME LIKE FACEBOOK SQL
Cách tạo hàm Function Sacalar FormatDateLikeFacebook()
ALTER FUNCTION FormatDateLikeFacebook
(
@datetime DATETIME
)
RETURNS NVARCHAR(100)
AS
BEGIN
DECLARE @timeago NUMERIC(10) = DATEDIFF(second,{d '1970-01-01'}, @datetime)
DECLARE @current_time NUMERIC(10) = DATEDIFF(second,{d '1970-01-01'}, GETDATE())
DECLARE @time_difference NUMERIC(10) = @current_time - @timeago
DECLARE @seconds NUMERIC(10) = @time_difference
DECLARE @minutes NUMERIC(10) = ROUND(@seconds / 60, 0)
DECLARE @hours NUMERIC(10) = ROUND(@seconds/ 3600, 0)
DECLARE @days NUMERIC(10) = ROUND(@seconds/86400, 0)
DECLARE @weeks NUMERIC(10) = ROUND(@seconds/604800, 0)
DECLARE @months NUMERIC(10) = ROUND(@seconds/2629440, 0)
DECLARE @years NUMERIC(10) = ROUND(@seconds/31553280, 0)
IF @seconds <= 60
RETURN N'Vừa mới đăng.'
ELSE IF @minutes<=60
BEGIN
IF @minutes = 1
RETURN N'Cách đây 1 phút.'
ELSE
RETURN CONCAT(N'Cách đây ', @minutes, N' phút.')
END
ELSE IF @hours<=24
BEGIN
IF @hours = 1
RETURN N'Cách đây 1 giờ.'
ELSE
RETURN CONCAT(N'Cách đây ', @hours, N' giờ.')
END
ELSE IF @days<= 7
BEGIN
IF @days = 1
RETURN N'Ngày hôm qua.'
ELSE
RETURN CONCAT(N'Cách đây ', @days, N' ngày.')
END
ELSE IF @weeks<= 4.3
BEGIN
IF @weeks = 1
RETURN N'Cách đây 1 tuần.'
ELSE
RETURN CONCAT(N'Cách đây ', @weeks, ' tuần.')
END
ELSE IF @months<= 12
BEGIN
IF @months = 1
RETURN N'Cách đây 1 tháng.'
ELSE
RETURN CONCAT(N'Cách đây ', @months, N' tháng.')
END
ELSE
BEGIN
IF @years =1
RETURN N'Cách đây 1 năm.'
ELSE
RETURN CONCAT(N'Cách đây ', @years, N' năm.')
END
RETURN ''
END
Và dưới đây là kết quả, khi thực hiện hàm trên:
Thanks for watching!