NEWS

[DATABASE] Chia sẽ hàm định dạng ngày giờ Like Facebook

[DATABASE] Chia sẽ hàm định dạng ngày giờ Like Facebook
Đăng bởi: Thảo Meo - Lượt xem: 3166 07:39:47, 30/03/2020DATABASE   In bài viết

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

format_date_facebook

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:

format_date_fb

Thanks for watching!

THÔNG TIN TÁC GIẢ

[DATABASE] Chia sẽ hàm định dạng ngày giờ Like Facebook
Đăng bởi: Thảo Meo - Lượt xem: 3166 07:39:47, 30/03/2020DATABASE   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp