在SQL语言中,输入的是出生年月,如何获取年龄。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL语言中,输入的是出生年月,如何获取年龄。相关的知识,希望对你有一定的参考价值。
你好,最近我在学习数据库 使用的是SQL server 2000;
想问一下:在表格信息中,一个属性是 出生年月:
形式是这样的:1989.01.01;
然后我想想问一下如何,使用使用sql语句 获得 每个对象的年龄;(即当前年—出生年)并在表里增加 年龄这个属性;
update 表名 set age=DateDiff(year,birthday,getdate())
如果修改后 还需要往该表里插入数据。可以创建一个触发器 来及时更改年龄
create trigger getAge
on 表名
for insert ,update
as
if update(birthday)
update 表名set age=DateDiff(year,birthday,getdate())
go
----------------
insert into 表名 values ('Ybaby','1990.08.02',null)
update 表名 set birthday=getdate() where id=2 参考技术A aleter table tablename add column age int(3);
update tablename set age=DateDiff(y,birthday,getdate())
birthday指的是数据表中的出生日期字段,getdate()表示当前日期,也可以写做'2009.05.17'。 参考技术B select (date()-出生年月)/365 as 年龄 from 表 参考技术C 用现在的年份减去出生年份就行 参考技术D select datediff(year,'1989.01.01',getdate())
mysql中根据输入的年龄查询符合该年龄出生日期的数据
我用的是java编写代码 有一个查询框key 输入年龄 查询表teacher中符合的出生年份的所有数据输出 表中只有Birthday 是date格式
String key = req.getParameter("key");
《这里转换比较》
String sql = "SELECT * FROM teacher WHERE 。。。。。。。'";
请用最简洁的方法 可用sql语句直接得到最好。。。或者写在一个servlet中 然后调用方法
sysdate是什么意思呢 后面的birthday是数据库中的那个字段是吧
追答sysdate是数据库的系统时间,也是date类型
追问查询不到呢 报错 eclipse说to_char function不存在 我是用一个特定值30岁来查的 数据库中的年份有84 85 86的 这个mysql中有这个方法么
追答哦哦,这是oracle的写法;sql server 写法是:
substr(convert(varchar(8),getdate(),112),1,4)-substr(convert(varchar(8),birthday,112),1,4)追问
阿丫丫丫 我要mysql的。。。。再麻烦下你 = =
追答date_format(NOW(),'%Y') - date_format(birthday,'%Y')NOW()是获取mysql的系统时间,date_format获取时间的格式 ‘%Y’表示四位年份
本回答被提问者采纳以上是关于在SQL语言中,输入的是出生年月,如何获取年龄。的主要内容,如果未能解决你的问题,请参考以下文章