DATE_ADD(now(),INTERVAL 2 DAY) 这句话就是把当前时间添加2天,那么当DAY是动态的时候,应该怎么写?DATE_ADD(now(),INTERVAL 2 (CASE lifeType WHEN 1 THEN DAY WHEN 2 THEN MONTH WHEN 3 THEN YEAR ELSE YEAR END)) 这样子会报错。似乎预处理可以解决,但是不会弄求高手
2 回答
不负相思意
TA贡献1777条经验 获得超10个赞
DATE_ADD(now(),INTERVAL 2 (
CASE
lifeType
WHEN
1
THEN
DAY
WHEN
2
THEN
MONTH
WHEN
3
THEN
YEAR
ELSE
YEAR
END
))
尝试修改为:
CASE
lifeType
WHEN
1
THEN
DATE_ADD(now(),INTERVAL 2
DAY
)
WHEN
2
THEN
DATE_ADD(now(),INTERVAL 2
MONTH
)
WHEN
3
THEN
DATE_ADD(now(),INTERVAL 2
YEAR
)
ELSE
DATE_ADD(now(),INTERVAL 2
YEAR
)
END
幕布斯7119047
TA贡献1794条经验 获得超8个赞
两种办法:
1:如果你有项目使用数据库,那么建议在项目中就将这种数据处理好,不要让数据库做除读写之外的事情。
2:由于数据是动态的,必须要用变量了,楼主可是试一下触发器,或者存储过程都可以,触发器的思路就是当该字段发生改变的时候在这个字段上进行处理。存储过程就是在存储之前进行预处理。
添加回答
举报
0/150
提交
取消