关于mysql date_add函数的type属性可以动态么?该怎么操作?

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)) 
这样子会报错。
似乎预处理可以解决,但是不会弄
求高手

慕森卡
浏览 411回答 2
2回答

不负相思意

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

两种办法:1:如果你有项目使用数据库,那么建议在项目中就将这种数据处理好,不要让数据库做除读写之外的事情。2:由于数据是动态的,必须要用变量了,楼主可是试一下触发器,或者存储过程都可以,触发器的思路就是当该字段发生改变的时候在这个字段上进行处理。存储过程就是在存储之前进行预处理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python
MySQL