需要SQL查询才能根据当前日期选择特定年龄限制内的人员

时间:2010-08-09 14:11:20

标签: sql

如果当前日期小于“2011-01-01”,如何选择年龄限制为19 t0 25的人 如果当前日期大于或等于'2011-01-01',则年龄限制在19至26之间

3 个答案:

答案 0 :(得分:0)

您可以使用简单的AND-OR逻辑来实现此目的。

Select * from <people_table>
  where ( (age between 19 and 25) and 
            (current_date < to_date('2011-01-01','YYYY-MM-DD'))
        )
     or (  (age between 19 and 26) and 
           (current_date >= to_date('2011-01-01','YYYY-MM-DD'))
        )

除非当然,通过current_date,如果你的意思是sysdate,你就会......

Select * from <people_table>
  where ( (age between 19 and 25) and 
            (sysdate < to_date('2011-01-01','YYYY-MM-DD'))
        )
     or (  (age between 19 and 26) and 
           (sysdate >= to_date('2011-01-01','YYYY-MM-DD'))
        )

答案 1 :(得分:0)

好吧,在MySQL中,CURDATE()会告诉你当前的日期。 然后,您可以起诉DATEDIFF()并查看差异是否在您想要的范围内。 例如,

SELECT * 从表 WHERE DATEDIFF(年,CURDATE(),日期)&gt; 18 AND DATEDIFF(年,CURDATE(),日期)&lt; 26;

答案 2 :(得分:0)

试试这个 -

select * from people_table
    where age > 19 and age <= 
    case 
    when (getdate() < '2011-01-01') then 25
    when (getdate() >= '2011-01-01') then 26
    end