如果可能的话,我需要根据它的月份更改MySQL变量的值。
假设我们用@Variable替换-3 ......
Field1 <> 1 AND (Field2 > 36000 OR Field3 < YEAR(DATE_ADD(NOW(),INTERVAL -3 YEAR)))
如果月份是八月或更晚,我需要将[-3]更改为[ - 2]。所以1月 - 7月得到[-3]而8月到12月得到[-2]。
如果有办法只使用SQL,那么这对于此应用程序的结构最有效。如果没有,请告诉我。
谢谢你们和gals。
答案 0 :(得分:0)
你不能用你的原始表达式替换-3: IF(月(@dateVar)&lt; = 6,-3,-2)
答案 1 :(得分:0)
您可以@Variable
满足您的规范:
SELECT @Variable := CASE WHEN MONTH(NOW()) >= 8 THEN 2 ELSE 3 END;
这也可以解决问题。
SELECT @Variable := IF(MONTH(NOW()) >= 8, 2, 3)
答案 2 :(得分:-1)
Field1 <> 1 AND (Field2 < 36000 AND Field3 > IF(MONTH(NOW()) > 7,YEAR(DATE_ADD(NOW(), INTERVAL -2 YEAR)),YEAR(DATE_ADD(NOW(), INTERVAL -3 YEAR))))
感谢Buffen先生鼓励上述查询。它对我来说很漂亮。我不知道如何让你成为解决方案提供商。