我想找一份工作年龄在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不会返回没有结束日期的任何人。为什么呢?