select sname,(2009-10-05)-birth
from student;birth字段中存的是出生年月,想查询出来的结果是年龄,该如何查询?

解决方案 »

  1.   

    select sname, to_char(sysdate,'YYYY')- to_char(birth,'YYYY') age from student";   
      

  2.   

    楼上的很正确,我还想问个问题,如何用sql语句修改一条记录中某个字段的值?
    比如,将一条记录的birth值修改成‘2000-05-05’
      

  3.   

    select sname,trunc(date'2009-10-05'-to_date(birth,'yyyymm') ) age
    from student; 
      

  4.   

    birth是date类型的?
    select sname,trunc(sysdate-birth) age from student
    就行了修改用update
    问题是你想根据什么查找到要修改的记录
    sname?
      

  5.   


    select sname,trunc((sysdate-birth)/365) age from student
    这样才能求出年龄值,为什么还要除以365呢?我修改用的语句如下:
    update student set birth='2000-05-05' where sname='张立';
    提示:ORA-01861:文字与格式字符串不匹配
      

  6.   

    ...日期相减得到的是天数
    你修改后的生日格式为字符型,但表里的是日期型的吧
    改成
    update student set birth=to_date('2000-05-05','yyyy-mm-dd') where sname='张立'
      

  7.   

    update student set birth=(to_date('2002-05-05','yyyy-mm-dd')) where sname='张立';