基于月的SQL查询

时间:2017-01-27 18:55:35

标签: mysql variables if-statement

如果可能的话,我需要根据它的月份更改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。

3 个答案:

答案 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先生鼓励上述查询。它对我来说很漂亮。我不知道如何让你成为解决方案提供商。