用MySql计算中国年份

时间:2012-06-15 03:34:48

标签: mysql

奇怪的一个。试图计算MySQL中的十二生肖年。像鼠年,虎年等年份,它们间隔12年,所以我想我需要修改它?

对于一个干净整洁的查询有什么好的建议吗?

2 个答案:

答案 0 :(得分:1)

这样的事情:

SELECT
    (
        CASE
            WHEN MOD(a.year, 12) = 0 THEN 'Monkey'
            WHEN MOD(a.year, 12) = 1 THEN 'Rooster'
            WHEN MOD(a.year, 12) = 2 THEN 'Dog'
            WHEN MOD(a.year, 12) = 3 THEN 'Pig'
            WHEN MOD(a.year, 12) = 4 THEN 'Rat'
            WHEN MOD(a.year, 12) = 5 THEN 'Ox'
            WHEN MOD(a.year, 12) = 6 THEN 'Tiger'
            WHEN MOD(a.year, 12) = 7 THEN 'Hare'
            WHEN MOD(a.year, 12) = 8 THEN 'Dragon'
            WHEN MOD(a.year, 12) = 9 THEN 'Snake'
            WHEN MOD(a.year, 12) = 10 THEN 'Horse'
            WHEN MOD(a.year, 12) = 11 THEN 'Sheep'
        END
    ) AS ZodiacYear
FROM
    table a

答案 1 :(得分:1)

或者,如果使用单个中文字符,您可以

SELECT SUBSTRING('鼠牛虎兔龙蛇马羊候鸡狗猪', (YEAR(CURRENT_DATE)-4)%12+1, 1);

注意

中国年使用月球日历,农历和格里高历之间有几个月的差异。