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
提交
取消