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

Bài viết được sự cho phép của tác giả Nguyễn Thảo

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.

  Hướng dẫn giải bài toán phân bổ số lượng (thuật toán chia kẹo) trong sqlserver
  Log MySQL Query

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
SQL

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

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

Thank for watching!

Bài viết gốc được đăng tải tại laptrinhvb.net

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev