这些嵌套的DATE_ADD和IF条件有何不同?

时间:2016-08-19 09:12:24

标签: mysql if-statement where

我想找一份工作年龄在1到5年之间的员工名单,包括那些有工作结束日期的员工。我使用了以下WHERE子句:

条件1

 WHERE PerBeginDate<=IF(PerEndDate IS NULL,DATE_ADD(Now(),INTERVAL -1 YEAR),DATE_ADD(PerEndDate,INTERVAL -1 YEAR))
  AND PerBeginDate>=IF(PerEndDate IS NULL,DATE_ADD(Now(),INTERVAL -5 YEAR),DATE_ADD(PerEndDate,INTERVAL -5 YEAR))

条件2

 WHERE PerBeginDate<=DATE_ADD(IF(PerEndDate IS NULL,Now(),PerEndDate),INTERVAL -1 YEAR)
  AND PerBeginDate>=DATE_ADD(IF(PerEndDate IS NULL,Now(),PerEndDate),INTERVAL -5 YEAR)

条件2不会返回没有结束日期的任何人。为什么呢?

0 个答案:

没有答案