【发布时间】:2014-02-28 15:20:05
【问题描述】:
我有一个表格,其中有一列包含出生日期 (bdate) 和较晚的日期 (entry)。 当一个人的年龄低于 35 岁时,我想要一个 2 的值 当年龄 >= 36 且
但是,我的查询永远不会返回高于 3 的值。出了什么问题?
SELECT TIMESTAMPDIFF( YEAR, str_to_date( CONCAT( 19, bdate ) , '%Y %m %d' ) , entry),
CASE
WHEN TIMESTAMPDIFF(YEAR, str_to_date(CONCAT(19, bdate), '%Y %m %d'), entry) <= 35 THEN 2
WHEN TIMESTAMPDIFF(YEAR, str_to_date(CONCAT(19, bdate), '%Y %m %d'), entry) >= 36 <= 40 THEN 3
WHEN TIMESTAMPDIFF(YEAR, str_to_date(CONCAT(19, bdate), '%Y %m %d'), entry) >= 41 <= 45 THEN 4
WHEN TIMESTAMPDIFF(YEAR, str_to_date(CONCAT(19, bdate), '%Y %m %d'), entry) >= 46 <= 50 THEN 5
WHEN TIMESTAMPDIFF(YEAR, str_to_date(CONCAT(19, bdate), '%Y %m %d'), entry) >= 51 <= 55 THEN 6
WHEN TIMESTAMPDIFF(YEAR, str_to_date(CONCAT(19, bdate), '%Y %m %d'), entry) >= 56 <= 60 THEN 7
WHEN TIMESTAMPDIFF(YEAR, str_to_date(CONCAT(19, bdate), '%Y %m %d'), entry) >= 61 <= 65 THEN 8
ELSE 0
END AS value
FROM mytable
【问题讨论】:
-
>= 36 <= 40条件测试有错误......应该像a >= 36 AND a <= 40
标签: mysql