如果在MySql中的DATE_ADD函数内部

时间:2018-03-17 15:55:42

标签: mysql sql

在我的MySql查询中,我需要检查以下内容:

... WHERE DATE_ADD(IF(Date1>Date2, Date1, Date2), INTERVAL 3 DAY)<CURDATE()

但显然这不起作用,这种情况总是因为我不知道的某些原因而返回。 我究竟做错了什么?是不是可以在DATE_ADD函数中使用IF?

3 个答案:

答案 0 :(得分:1)

或者在没有函数DATE_ADD

的情况下使用它
WHERE (IF(Date1 > Date2, Date1, Date2) + INTERVAL 3 DAY) < CURDATE()

演示选择

http://rextester.com/KWR80225

答案 1 :(得分:0)

可以使用例如:

的情况
  where (case when Date1>Date2 then DATE_ADD( Date1,  INTERVAL 3 DAY)
         else  DATE_ADD( Date2,  INTERVAL 3 DAY) END)  < <CURDATE() 

或使用if

WHERE IF(Date1>Date2, DATE_ADD( Date1,  INTERVAL 3 DAY) ,  DATE_ADD( Date2,  INTERVAL 3 DAY))<CURDATE()

答案 2 :(得分:0)

好吧,我尝试以下

set @b = date'2017/5/1';

设置@a = date&#39; 2018/5/1&#39 ;; 选择date_add(if(@ a&gt; @b,@ a,@ b),间隔3天)&lt; curdate()as u;

答案是0;我在改变后再试一次

设置@a = date&#39; 2018/1/1&#39;;

,答案是1,一切都是你想要的。

你的&#34; Date1&#34;的范围是什么?和&#34;日期2&#34;?