⑴ sql语句如何根据出生日期计算年龄
第一种:
一张人员信息表里有一人生日(Birthday)列,跟据这个列,算出该人员的年龄
datediff(year,birthday,getdate())
例:birthday
=
'2003-3-8'
getDate()=
'2008-7-7'
结果为:5
这样结果是会返回该人员的大概年龄,但不精确.不会精确到月或日.
按照上面测试的日期,该人员的实际年龄应该还不满5岁。在需要精确年龄的时候,就会有错.
第二种:
FLOOR(datediff(DY,birthday,getdate())/365.25)
FLOOR函数:
FLOOR(expr)
返回小于或等于expr的最大整数.FLOOR(1.1)返回1,FLOOR(-1.1)返回-2,FLOOR(1)返回1
这样就可以精确算出,该人员当前实际年龄了.
测试:
birthday
=
'2000-7-8'
getdate()=
'2007-7-7'
算出结果为:6
在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来。
一种常用的方法是:to_number(to_char(sysdate,'yyyy'))
还有一种更好的方法,那就是使用oracle提供的Extract函数,使用方法是:
extract(year
from
sysdate)
,此方法获得的结果是数值型的
,这种方法省掉了类型转换,更加简洁。
相应的,要取得月份或日,可以用extract
(month
from
sysdate)
和extract
(day
from
sysdate)
⑵ oracle 年龄段统计
年龄段统计可用case when 语句。
如test表中有以下数据:
⑶ oracle根据出生日期算年龄
select floor(months_between(to_date(concat(extract(year from sysdate),'-10-31'),'YYYY-MM-DD'),to_date(生日的日期,'yyyy-mm-dd'))/12) from table_name
floor 向下取整
months_between 日期相差的月份数
concat字字符串连接
extract(year from sysdate) 返回当前日期的年份
⑷ SQL语句如何根据出生日期计算年龄
第一种:
一张人员信息表里有一人生日(Birthday)列,跟据这个列,算出该人员的年龄
datediff(year,birthday,getdate())
例:birthday = '2003-3-8'
getDate()= '2008-7-7'
结果为:5
这样结果是会返回该人员的大概年龄,但不精确.不会精确到月或日.
按照上面测试的日期,该人员的实际年龄应该还不满5岁。在需要精确年龄的时候,就会有错.
第二种:
FLOOR(datediff(DY,birthday,getdate())/365.25)
FLOOR函数:
FLOOR(expr) 返回小于或等于expr的最大整数.FLOOR(1.1)返回1,FLOOR(-1.1)返回-2,FLOOR(1)返回1
这样就可以精确算出,该人员当前实际年龄了.
测试:
birthday = '2000-7-8'
getdate()= '2007-7-7'
算出结果为:6
在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来。
一种常用的方法是:to_number(to_char(sysdate,'yyyy'))
还有一种更好的方法,那就是使用oracle提供的Extract函数,使用方法是:
extract(year from sysdate) ,此方法获得的结果是数值型的 ,这种方法省掉了类型转换,更加简洁。
相应的,要取得月份或日,可以用extract (month from sysdate) 和extract (day from sysdate)
⑸ oracle.根据生日字段计算查询出人员表每个人的年龄
这个办法很多,如果是比较精确的可以用month_between函数,然后除以12,最后在trunc这样就能得到具体的年龄了。
比如trunc(month_between(sysdate,时间类型的生日字段)/12)
个人感觉这个精确一些,能精确到天,只要还没过生日,那么就不会加一岁。
当然二者直接相减trunc((sysdate-时间类型的生日字段)/365)也可以。
sysdate-时间类型的生日字段,这么相减默认出现的是相差的天数,所以除以365。这个也可以,不过有些年是366天,不过因为366天的年分比较少,所以基本上不会相差很多。只是会出现,“提前”的情况。不过80年最多才21天(大概是这样,我没细算,就算四年一次),所以对实际影响不是特别大。如果要求准确那么还是上面的靠谱一些。
用函数取出字段年,然后用现在的年相减也可以。这个就是一个大概(个人认为更加不靠谱),比如一个人2050年12月30日出生,现在是2055年后的1月1号,那么按照年来说就是5,但是其实才4岁多一点,所以年这个只是一个大概的,不会十分准确。
⑹ Oracle 根据出生日期计算年龄
可用to_char函数将date类型转成字符类型。
如emp表中有如下数据:
⑺ Oracle中如何计算年龄
SQL语句如下:
selectfloor(MONTHS_BETWEEN(sysdate,date'2016-1-1')/12)asagefromal;
结果:
⑻ sql计算年龄
当然报错了
因为你没有制定查询条件,
现在写的语句select查询出Sales.Decile表中所有记录,而你的update是等于(意思更新一条记录),所以报错了,应该指定where条件
⑼ 如何用SQL语句把出生日期计算年龄,比如是1984-2-16怎么算出年龄啊
语句为:SELECT FLOOR(DATEDIFF(CURRENT_DATE,'1984-2-16')/356)
常用sql对数据库操作:
连接数据库命令:mysql -u root -p密码
创建数据库:create database dbname;
查看所有的数据库:show databases;
删除数据库:drop database dbname;
切换数据库:use dbname;
知识拓展:
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。