[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:
Tý | 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ả:
Thank for watching!