GBase 8s开发与管理 - 干支
type: channel
link: https://www.gbasedbt.com/index.php/tag/%E5%B9%B2%E6%94%AF/
items: 获取干支纪年的函数

获取干支纪年的函数
type: item
date: 2025-05-07T15:42:00+08:00
description: 干支纪年可通过年份计算得来（东汉以后）drop function if exists getY2TGDZ(int); create function getY2TGDZ(p_year int) returns varchar(20) with (not variant); define v_tg int; define v_dz int; -- 天干：mod(年份,10），前移3 let v_tg = mod(p_year,10)+7; if v_tg > 10 then let v_tg = v_tg - 10; end if; -- 地支：mod(年份,12)，前移3 let v_dz = mod(p_year,12)+9; if v_dz > 12 then let v_dz = v_dz - 12; end if; return substr('甲乙丙丁戊己庚辛壬癸',v_tg,1) || substr('子丑寅卯辰巳午未申酉戌亥',v_dz,1); end function;示例：select getY2TGDZ(2025) as tz from dual;结果：tz 乙巳