第一种:

一张人员信息表里有一人生日(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)

SQL根据出生日期精确计算年龄、获取日期中的年份、月份的更多相关文章

  1. SQL 根据日期精确计算年龄

    SQL 根据日期精确计算年龄 第一种: 一张人员信息表里有一人生日(Birthday)列,跟据这个列,算出该人员的年龄 datediff(year,birthday,getdate()) 例:birt ...

  2. java计算两个日期之间相隔的月份(向下取整)

    最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...

  3. 编程乐趣:C#获取日期所在周、月份第一和最后一天

    原文:编程乐趣:C#获取日期所在周.月份第一和最后一天 写了个小功能,需要用到以周为时间段,于是写了个获取周第一和最后一天的方法,获取月份的第一和最后一天就比较简单了.代码如下: public cla ...

  4. JS[获取两个日期中所有的月份]

    //------[获取两个日期中所有的月份中] function getMonthBetween(start,end){ var result = []; var s = start.split(&q ...

  5. 在Excel中根据某一个单元格的出生日期自动精确计算年龄

    =IF(MONTH(NOW())<MONTH(G4),INT(YEAR(NOW())-YEAR(G4))-1,IF(MONTH(NOW())>MONTH(G4),YEAR(NOW())-Y ...

  6. Java 根据年月日精确计算年龄

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...

  7. 依据出生日期Date 计算年龄

    依据出生日期计算年龄 public class DateGetAge { public static int getAge(Date birthDay) throws Exception { Cale ...

  8. sql - 获取日期中的年

    使用 YEAR函数, 如 --day为rain表中的字段. select YEAR(day) from t_rain

  9. sql 根据身份证号码计算年龄

    ,), GETDATE()) / 365.25) from ConstructionInfo

随机推荐

  1. Activity参数传递

    简单数据传递 putExtra() 传递 findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Over ...

  2. MongoDB Oplog

    Capped Collections MongoDB有一种特殊的Collection叫Capped collections,它的插入速度非常快,基本和磁盘的写入速度差不多,并且支持按照插入顺序高效的查 ...

  3. Broken robot

    题意: 要在$nm$的矩阵中从 $(i,j)$ 处移动到第 $n$ 行,每次移动可在不动.左移一格.右移一格.下移一格 4 种选择中等概率随机选一种,但移动不能超出矩阵.求移动次数的期望,最少保留4位 ...

  4. 前端学习之——js解析json数组

    ** 前端学习之——js解析json数组** 解析json数组即对JSONArray的遍历 一.对于标准的json数组如: var result=[{"flag":1," ...

  5. 基于Jenkins自动构建系统开发

    1  绪论 1.1 课题的研究背景 随着IT行业的不断发展,软件开发的复杂度也随着不断提高.与此同时,软件的开发团队也越来越庞大,而如何更好地协同整个团队进行高效准确的工作,从而确保软件开发的质量已经 ...

  6. mysql 三存储引擎

    一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型 ...

  7. jQuery 生成随机字符

    //获取长度为len的随机字母 //获取长度为len的随机字母 function zimu(len){ len = len || 1; var $chars = 'ABCDEFGHIJKLMNOPQR ...

  8. selenium浏览器驱动下载地址整理

    今天把手头有的一些关于selenium测试的资源整理了一下,分享出来. 1. 所有版本chrome下载 是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是 ...

  9. 洛谷P3857 [TJOI2008]彩灯(线性基)

    传送门 线性基裸题 直接把所有的状态都带进去建一个线性基 然后答案就是$2^{cnt}$($cnt$代表线性基里数的个数) //minamoto #include<cstdio> #inc ...

  10. 怎么解决UIScrollView把uitableviewcell的点击事件屏蔽了

    [self.contentView addSubview:self.scrollView]; self.scrollView.userInteractionEnabled = NO; [self.co ...