如何阅读专栏中的日期需要做什么?

时间:2014-03-22 14:07:02

标签: sql ms-access

我需要在2000年以前雇用的所有人放置旧计时器吗?我编写了代码,当我运行代码时,所有人都会使用旧计时器。我不希望它只是由2000年雇用的人才想要它。我无法弄清楚我正在做什么工作,因为我编写的代码是为了一个项目的价格这样做是昂贵的,它工作正常。但是按照约会的方式这样做,我似乎迷失了。这是我写的select语句,也许有人可以引导我走上正确的道路?

select employee_id,
   hire_date,
   'OLD TIMER' as message
from l_employees
where hire_date > 2000
union all
select employee_id,
   hire_date,
   ' '
from l_employees
where not (hire_date >2000)
or hire_date is null
order by  employee_id;

当我更改select语句时,我得到了我想要的结果,我需要它,但是当我使用雇用日期是日期/时间数据类型时,我需要这样做。

select employee_id,
credit_limit,
'OLD TIMER' as message
from l_employees
where credit_limit > 15.00
union all
select employee_id,
credit_limit,
' '
from l_employees
where not credit_limit > 15.00
or credit_limit is null
order by  employee_id;

这是我从表格中得到的结果

 employee_id    credit_limit    message
         201      $30.00    OLD TIMER
         202      $25.00    OLD TIMER
         203      $25.00    OLD TIMER
         204      $15.00     
         205      $25.00    OLD TIMER
         206         
         207      $25.00    OLD TIMER
         208      $25.00    OLD TIMER
         209      $15.00     
         210      $25.00    OLD TIMER
         211      $40.00    OLD TIMER

这是最顶层选择语句的输出

 employee_id    hire_date   message
         201    6/1/1998    OLD TIMER
         202    8/16/1999   OLD TIMER
         203    2/2/2009    OLD TIMER
         204    7/1/2008    OLD TIMER
         205    3/1/2006    OLD TIMER
         206         
         207    12/1/2008   OLD TIMER
         208    4/1/2008    OLD TIMER
         209    3/17/1999   OLD TIMER
         210    2/16/2007   OLD TIMER
         211    2/3/2014    OLD TIMER

只是为了更新我发现了如何获得我正在寻找的结果感谢我对此问题的所有帮助。

2 个答案:

答案 0 :(得分:2)

select employee_id,
       hire_date,
       switch(
              year(hire_date) < 2000, 'OLD TIMER'
              , true, 'Greenhorn'
             )as message
from l_employees

答案 1 :(得分:0)

试试这个:

select employee_id,
   hire_date,
   'OLD TIMER' as message
from l_employees
where hire_date < 20000101
union all
select employee_id,
   hire_date,
   ' '
from l_employees
where hire_date >= 20000101
or hire_date is null
order by  employee_id;

这对我来说在测试台上有用。 在这里,我以YYYYMMDD的形式指定日期,而不仅仅是YYYY。