2012-06-15 2 views
1

Странный. Попытка рассчитать китайский зодиакальный год в MySQL. Годы, такие как год крысы, тигр и т. Д. Они ходят через 12 лет, поэтому, полагаю, мне нужно его модифицировать?Caclulate Chinese Year with MySql

Любые хорошие предложения для приятного и чистого запроса?

ответ

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 
+0

безупречный !!!! Спасибо! – Luc

1

Или, если с помощью одного китайского иероглифа, вы можете

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

Примечание

китайский год использования лунный календарь, там уже несколько месяцев разница между лунным календарем и грегорским календарем.