birth字段中存的是出生年月,想查询出来的结果是年龄,该如何查询?加上datediff函数试试 select sname, to_char(sysdate,'YYYY')- to_char(birth,'YYYY') age from student";
楼上的很正确,我还想问个问题,如何用sql语句修改一条记录中某个字段的值? 比如,将一条记录的birth值修改成‘2000-05-05’ select sname,trunc(date'2009-10-05'-to_date(birth,'yyyymm') ) age from student; birth是date类型的? select sname,trunc(sysdate-birth) age from student 就行了
修改用update 问题是你想根据什么查找到要修改的记录 sname?
select sname,trunc((sysdate-birth)/365) age from student 这样才能求出年龄值,为什么还要除以365呢?
我修改用的语句如下: update student set birth='2000-05-05' where sname='张立'; 提示:ORA-01861:文字与格式字符串不匹配 ...日期相减得到的是天数 你修改后的生日格式为字符型,但表里的是日期型的吧 改成 update student set birth=to_date('2000-05-05','yyyy-mm-dd') where sname='张立'