1

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

对于一个漂亮而干净的查询有什么好的建议吗?

4

2 回答 2

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
于 2012-06-15T03:48:58.160 回答
1

或者,如果使用单个汉字,您可以

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

笔记

中国年使用农历,农历和公历有几个月的差异。

于 2012-06-15T04:05:00.310 回答