我有一个MySQL选择,它在CASE语句中抛出一个错误。
该节可以是五个值之一。我想要测试今天的日期(现在)是否小于个人的出生日期加上x年。列道布是类型日期。
SELECT ca_id, cad_id, section, dob,
CASE
WHEN section LIKE '%Joey%' AND ((dob, INTERVAL 6 YEAR) < NOW()) THEN '1'
WHEN section LIKE '%Joey%' AND ((dob, INTERVAL 7 YEAR) < NOW()) THEN '2'
WHEN section LIKE '%Joey%' THEN '3'
ELSE '0'
END AS milestoneBracket错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:中的
SQLException :您的SQL语法出现了错误;请检查与MySQL服务器版本相对应的手册,以获得正确的语法,以便在第1行使用getAttendance ')
发布于 2022-03-06 08:04:46
您缺少的是SQL查询中的Date Add函数调用。
SELECT ca_id, cad_id, section, dob,
CASE
WHEN section LIKE '%Joey%' AND (DATE_ADD(dob, INTERVAL 6 YEAR) < NOW()) THEN '1'
WHEN section LIKE '%Joey%' AND (DATE_ADD(dob, INTERVAL 7 YEAR) < NOW()) THEN '2'
WHEN section LIKE '%Joey%' THEN '3'
ELSE '0'
END AS milestoneBrackethttps://stackoverflow.com/questions/71367890
复制相似问题