从一张员工信息表中查询年龄小于20的,我是这样写的
select * from table where ltrim(出生年月日,8,4)>datetime.year-22
但找不到结果,运行有误,请各位指教

解决方案 »

  1.   

    select * from table where year(getdate())- year(出生年月日)<20
      

  2.   

    select * from table where datediff(year,出生年月日,getdate())<20
      

  3.   

    select * from table where datediff(year,出生年月日,getdate())<20
      

  4.   

    Create Table 员工信息表 (id int,name varchar(10),出生年月日 datetime)
    insert 员工信息表 select 1,'a','1981-10-01'
    insert 员工信息表 select 2,'b','1987-04-05'
    insert 员工信息表 select 3,'c','1988-04-04'
    insert 员工信息表 select 4,'d','1976-04-04'
    insert 员工信息表 select 5,'e','1986-02-04'
    insert 员工信息表 select 6,'f','1985-06-06'
    insert 员工信息表 select 7,'g','1956-01-01'select * from 员工信息表 where datediff(year,出生年月日,getdate())<20drop table 员工信息表------------------------
    id          name       出生年月日                                                  
    ----------- ---------- ------------------------------------------------------ 
    2           b          1987-04-05 00:00:00.000
    3           c          1988-04-04 00:00:00.000(所影响的行数为 2 行)
      

  5.   

    select * from table where datediff(day,出生日期,getdate())<365