如何用SQL语句把出生日期计算年龄,比如是1984-2-16怎么算出年龄啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用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,关系数据库管理系统) 应用软件。

参考技术A 可以用日期函数datediff计算出生日期与当前日期相差的年数
如datediff(year,'1984-2-16',getdate())
人活一辈子,就活一颗心,心好了,一切就都好了,心强大了,一切问题,都不是问题。

  人的心,虽然只有拳头般大小,当它强大的时候,其力量是无穷无尽的,可以战胜一切,当它脆弱的时候,特别容易受伤,容易多愁善感。

  心,是我们的根,是我们的本,我们要努力修炼自己的心,让它变得越来越强大,因为只有内心强大,方可治愈一切。

  没有强大的敌人,只有不够强大的自己

  人生,是一场自己和自己的较量,说到底,是自己与心的较量。如果你能够打开自己的内心,积极乐观的去生活,你会发现,生活并没有想象的那么糟糕。

  面对不容易的生活,我们要不断强大自己的内心,没人扶的时候,一定要靠自己站稳了,只要你站稳了,生活就无法将你撂倒。

  人活着要明白,这个世界,没有强大的敌人,只有不够强大的自己,如果你对现在的生活不满意,千万别抱怨,努力强大自己的内心,才是我们唯一的出路。

  只要你内心足够强大,人生就没有过不去的坎

  人生路上,坎坎坷坷,磕磕绊绊,如果你内心不够强大,那这些坎坎坷坷,磕磕绊绊,都会成为你人生路上,一道道过不去的坎,你会走得异常艰难。

  人生的坎,不好过,特别是心坎,最难过,过了这道坎,还有下道坎,过了这一关,还有下一关。面对这些关关坎坎,我们必须勇敢往前走,即使心里感到害怕,也要硬着头皮往前冲。

  人生没有过不去的坎,只要你勇敢,只要内心足够强大,一切都会过去的,不信,你回过头来看看,你已经跨过了多少坎坷,闯过了多少关。

  内心强大,是治愈一切的良方

  面对生活的不如意,面对情感的波折,面对工作上的糟心,你是否心烦意乱?是否焦躁不安?如果是,请一定要强大自己的内心,因为内心强大,是治愈一切的良方。

  当你的内心,变得足够强大,一切困难,皆可战胜,一切问题,皆可解决。心强则胜,心弱则败,很多时候,打败我们的,不是生活的不如意,也不是情感的波折,更不是工作上的糟心,而是我们内心的脆弱。

  真的,我从来不怕现实太残酷,就怕自己不够勇敢,我从来不怕生活太苦太难,就怕自己不够坚强。我相信,只要我们的内心,变得足够强大,人生就没有那么多鸡毛蒜皮。

  强大自己的内心,我们才能越活越好

  生活的美好,在于追求美好的生活,而美好的生活,源于一颗强大的内心,因为只有内心强大的人,才能消化掉各种不顺心,各种不如意,将阴霾驱散,让美好留在心中。

  心中有美好,生活才美好,心中有阳光,人生才芬芳。一颗阴暗的心,托不起一张灿烂的脸,一颗强大的心,可以美化生活,精彩人生,让我们越活越好。

  生活有点欺软怕硬,如果你内心很脆弱,生活就会打压你,甚至折磨你,如果你内心足够强大,生活就会奖励你,眷顾你,全世界都会对你和颜悦色。
参考技术B

计算年龄就是,计算当前时间与出生日期的年份差的过程,所以用到DATEDIFF 函数。

一、DATEDIFF 函数简介

1、函数功能:返回两个日期之间的间隔指定单位值。

2、语法:DATEDIFF ( date-part, date-expression-1, date-expression-2 )

date-part :指定要测量其间隔的日期部分,常用参数说明

date-expression-1 某一间隔的起始日期。

date-expression-2 某一间隔的结束日期。

函数返回值:从date-expression-2 值中减去 Date-expression-1,返回两个参数之间 date-parts 的值。

3、范例演示:

SELECT datediff( hh, '4:00AM', '5:50AM' )下面的语句返回 102:
SELECT datediff( mm, '1987/05/02', '1995/11/15' )下面的语句返回 0:
SELECT datediff( dd, '00:00', '23:59' )下面的语句返回 4:
SELECT datediff( dd,'1999/07/19 00:00','1999/07/23 23:59' )下面的语句返回 0:
SELECT datediff( mm, '1999/07/19', '1999/07/23' )下面的语句返回 1:
SELECT datediff( mm, '1999/07/19', '1999/08/23' )

二、通过出生日期计算年龄的实例

1、实例表格:a_test

2、SQL语句如下:

select bh,rq,
case when datediff(yy,rq,getdate()) = 0                   
then cast(datediff(mm,rq,getdate()) as char(3))  +'个月'  
else cast(datediff(yy,rq,getdate()) as char(3))  +'岁'    
end  as '年龄'                                           
from a_test;

语句解析:语句主体部分

case when datediff(yy,rq,getdate()) = 0                  
then cast(datediff(mm,rq,getdate()) as char(3))  +'个月'  
else cast(datediff(yy,rq,getdate()) as char(3))  +'岁'    
end  as '年龄'

datediff函数计算出生日期rq与系统当前时间getdate()的年份差值,如果差值大于0,就计算月份差,显示月份为年龄。

语句结果如图:  

参考技术C 可以用日期函数datediff计算出生日期与当前日期相差的年数
如datediff(year,'1984-2-16',getdate())追问

我不需要很详细的时间,按照这个写出来的不是年龄啊。还有这个要怎么写啊

追答

这只是获得两个日期之前的年数,应该就是年龄了,你要的是什麼?

追问

select datediff(year,’1984-2-16’getdate()) as '年龄' from BD_StudentInformation对不对

追答

你的出生日期不是一个字段吗?
将如下出生日期字段换成实际的字段名即可

select datediff(year,出生日期字段,getdate()) as 年龄 from BD_StudentInformation

追问

额。。。什么叫出生日期的字段啊。。。

追答

你是不是查BD_StudentInformation表中每个学生的年龄?
BD_StudentInformation中应该有一个字段是记录学生年龄的吧

追问

select datediff(year,’BD_StudentInformationyear’getdate()) as '年龄' from BD_StudentInformatio 对吧

追答

select datediff(year,BD_StudentInformationyear,getdate()) as ‘年龄’ from BD_StudentInformatio
不用加引号,且getdate()前是要加逗号分开的

本回答被提问者采纳
参考技术D ,if( substring(FROM_UNIXTIME(UNIX_TIMESTAMP('$y_date','yyyy-MM-dd'), 'yyyyMMdd'),5) >= substring(a.ZCSDAT,5) ,
substring(FROM_UNIXTIME(UNIX_TIMESTAMP('$y_date','yyyy-MM-dd'), 'yyyyMMdd'),1,4) - substring(a.ZCSDAT,1,4),
substring(FROM_UNIXTIME(UNIX_TIMESTAMP('$y_date','yyyy-MM-dd'), 'yyyyMMdd'),1,4) - substring(a.ZCSDAT,1,4)-1
) AS EMP_AGE --年龄: 跑数月日 >= 出生月日 ,年份差 ,否则年份差-1

如何用excel计算年龄,要具体到年月日

给出生日和一个日期,算出当天年龄,结果能显示年龄是几岁几月几天这样的

=IF(F3="","",DATEDIF(F3,NOW(),"y")&"岁零"&DATEDIF(F3,NOW(),"ym")&"个月零"&DATEDIF(F3,NOW(),"md")&"天")
公式中的F3是“出生日期”,格式如“2001-2-2”
如果你想计算你指定现在的日期到出生日期之间的数据,请把公式中的NOW()变为一个日期即可,如“2009-2-2”追问

后面我懂,公式前面这里=IF(F3="",""是什么意思?

追答

哎呀,就是如果数据源(F3)中什么都没有(空值)的时候,那个写有公式的单元格就也为空值(什么都没有)嘛,是为了页面好看做的处理方法。不然显示乱七八糟的东西,看不顺眼啦。
"" 表示空值

追问

那Y,YM,MD是什么意思?为什么不是直接Y,M,D这样呢?

追答

我只大概知道那是年月日的意思,具体的我也不十分清楚呵,你改变参数,多试一下,自己领会吧?

参考技术A 2007版本的excel为:
设A1=出生日期 B1=指定的日期
计算出生日期 至 指定日期的年龄
=YEAR(A1)-YEAR(B1)&"年"& MONTH(A1)-MONTH(B2)&"个月零"&DAY(A1)-DAY(B1)&"天"
2003版本的excel参照其它答案。
参考技术B a1 生日,b1给定日期
年龄 =DATEDIF(A1,B1,"Y")&"岁"&TEXT(B1-A1,"m个月零d天")
参考技术C 几岁几月几天?太难了
计算年龄倒方便:例如:A1单元格是日期型的,1990/3/3,在其他单元格输入=DATEDIF(A1,TODAY(),"y")
参考技术D =CONCATENATE(DATEDIF(G4,NOW(),"Y"),"岁",DATEDIF(G4,NOW(),"yM"),"月",DATEDIF(G4,NOW(),"md"),"天")
在G4里面输入出生年月日

以上是关于如何用SQL语句把出生日期计算年龄,比如是1984-2-16怎么算出年龄啊的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句如何根据出生日期计算年龄

SQL语句如何根据出生日期计算年龄

如何用SQL计算access2007数据表两个日期差?

如何用excel计算出年龄?

sql根据身份证计算年龄。

如何用EXCEL计算年龄,精确到月和天,并筛选