18/03/2021, 09:46

[SQLSERVER] Chia sẻ hàm cách tính can chi theo tuổi

Xin chào các bạn, bài viết hôm nay mình sẻ chia sẽ đến các bạn cách tính can chi theo tuổi trong Sqlserver. Ví dụ: Năm 1988 => Mậu Thìn Vd: 28/03/1988 => Bạn sinh vào ngày thứ hai năm Mậu thìn Can có 10 can: GIÁP; ẤT; BÍNH ; ĐINH; MẬU ; KỈ ; CANH ; ...

Xin chào các bạn, bài viết hôm nay mình sẻ chia sẽ đến các bạn cách tính can chi theo tuổi trong Sqlserver. Ví dụ: Năm 1988 => Mậu Thìn

Vd: 28/03/1988 => Bạn sinh vào ngày thứ hai năm Mậu thìn

Can có 10 can: GIÁP; ẤT; BÍNH ; ĐINH; MẬU ; KỈ ; CANH ; TÂN ; NHÂM; QUÝ. 

Chi có 12 chi: TÝ ; SỬU ; DẦN ; MÃO; THÌN ; TỴ ; NGỌ ;MÙI ; THÂN ; DẬU ; TUẤT; HỢI.

Bảng tính can chi:

+ Bảng can:

0 1 2 3 4 5 6 7 8 9
Canh Tân Nhâm Quý Giáp  Ất Bính  Đinh Mậu Kỷ

+ Bảng chi:

  Sửu Dần Mão Thìn Tỵ Ngọ Mùi  Thân Dậu Tuất Hợi
3 1 2 0 1 2 0 1 2 0 1 2 0
4 0 1 2 3 0 1 2 3 0 1 2 3

Các bạn tạo hàm fn_Nam_CanChi sql như sau:

CREATE FUNCTION [dbo].[fn_Nam_CanChi ]
(
	@Year int
)
RETURNS NVARCHAR(100)
AS
BEGIN
	DECLARE @Can NVARCHAR(50), @Chi NVARCHAR(50)
	SET @Can = CASE WHEN @Year%10 = 0 THEN N'Canh'
					WHEN @Year%10 = 1 THEN N'Tân'
					WHEN @Year%10 = 2 THEN N'Nhâm'
					WHEN @Year%10 = 3 THEN N'Quý'
					WHEN @Year%10 = 4 THEN N'Giáp'
					WHEN @Year%10 = 5 THEN N'Ất'
					WHEN @Year%10 = 6 THEN N'Bính'
					WHEN @Year%10 = 7 THEN N'Đinh'
					WHEN @Year%10 = 8 THEN N'Mậu'
					ELSE N'Kỷ' END
	SET @Chi = CASE WHEN @Year%12 = 0 THEN N'Thân'
					WHEN @Year%12 = 1 THEN N'Dậu'
					WHEN @Year%12 = 2 THEN N'Tuất'
					WHEN @Year%12 = 3 THEN N'Hợi'
					WHEN @Year%12 = 4 THEN N'Tý'
					WHEN @Year%12 = 5 THEN N'Sửu'
					WHEN @Year%12 = 6 THEN N'Dần'
					WHEN @Year%12 = 7 THEN N'Mẹo'
					WHEN @Year%12 = 8 THEN N'Thìn'
					WHEN @Year%12 = 9 THEN N'Tỵ'
					WHEN @Year%12 = 10 THEN N'Ngọ'
					ELSE  N'Mùi' end

	RETURN @Can+' '+@Chi

END

Và dưới đây là hình ảnh kết quả:

canchi_sql

Thank for watching!

Tags: can chi sqltính can chi theo tuổi sql
0