请问在SQL中如何用出生年月计算年龄

请问在SQL中如何用出生年月计算年龄,第1张

select

(year(curdate())-year(birth))

from

where

这样就可以了birth是你的生日列。后面跟上你的查询条件即可输出符合条件的人的年龄

希望有所帮助。

第一种:\x0d\一张人员信息表里有一人生日(Birthday)列,跟据这个列,算出该人员的年龄\x0d\datediff(year,birthday,getdate())\x0d\例:birthday = '2003-3-8'\x0d\getDate()= '2008-7-7'\x0d\结果为:5\x0d\这样结果是会返回该人员的大概年龄,但不精确不会精确到月或日\x0d\按照上面测试的日期,该人员的实际年龄应该还不满5岁。在需要精确年龄的时候,就会有错\x0d\第二种:\x0d\FLOOR(datediff(DY,birthday,getdate())/36525)\x0d\FLOOR函数:\x0d\FLOOR(expr) 返回小于或等于expr的最大整数FLOOR(11)返回1,FLOOR(-11)返回-2,FLOOR(1)返回1\x0d\这样就可以精确算出,该人员当前实际年龄了\x0d\测试:\x0d\birthday = '2000-7-8'\x0d\getdate()= '2007-7-7'\x0d\算出结果为:6\x0d\\x0d\在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来。\x0d\一种常用的方法是:to_number(to_char(sysdate,'yyyy'))\x0d\还有一种更好的方法,那就是使用oracle提供的Extract函数,使用方法是:\x0d\extract(year from sysdate) ,此方法获得的结果是数值型的 ,这种方法省掉了类型转换,更加简洁。\x0d\相应的,要取得月份或日,可以用extract (month from sysdate) 和extract (day from sysdate)

Transact-SQL 参考

DATEDIFF

返回跨两个指定日期的日期和时间边界数。

语法

DATEDIFF ( datepart , startdate , enddate )

参数

datepart

是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

日期部分 缩写

year yy, yyyy

quarter qq, q

Month mm, m

dayofyear dy, y

Day dd, d

Week wk, ww

Hour hh

minute mi, n

second ss, s

millisecond ms

startdate

是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

如果您只指定年份的最后两位数字,则小于或等于 "两位数年份截止期 "配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。

enddate

是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

返回类型

integer

注释

startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。

当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23647 秒。对于秒,最大数是 68 年。

计算跨分钟、秒和毫秒这些边界的方法,使得 DATEDIFF 给出的结果在全部数据类型中是一致的。结果是带正负号的整数值,其等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。

示例

此示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。

USE pubs

GO

SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days

FROM titles

GO

select datediff(year,EMP_BIRTHDAY,getdate()) as '年龄' from 表名

以上就是关于请问在SQL中如何用出生年月计算年龄全部的内容,包括:请问在SQL中如何用出生年月计算年龄、SQL语句如何根据出生日期计算年龄、db2 sql 怎么样 根据出生日期计算年龄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10161564.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存