提前说一下,有一个bug,就是出生日期等于getdate()的时候,由于没有精确到时分秒,而无法计算年龄。

过几天补上。


/*计算明细年龄问题*/DECLARE @ADATE DATETIME, @BIRTHDAY DATETIME, @AYEAR INT,@AMONTH INT,@ADAY INT,@BDAY INT, @RVALUE VARCHAR(20)
SET @RVALUE = ''
SET @BIRTHDAY ='2019-06-21 10:00:00.000'
SET @ADATE = GETDATE()
SET @ADAY = DATEDIFF(DAY, @BIRTHDAY, @ADATE) --当前日期与生日的日期IF @ADAY > 0  --即 出生日期大于当前日期,生日day>当前dayBEGIN--当前日期与生日的月份差值SELECT @AMONTH = DATEDIFF(MONTH, @BIRTHDAY, @ADATE),--DATEPART 用于返回日期的单独部分,当前日期的日减去生日的日,赋值给@BDAY@BDAY = DATEPART(DAY, @ADATE) - DATEPART(DAY, @BIRTHDAY)SET @AYEAR = @AMONTH / 12  --年=总月份/12SET @AMONTH = @AMONTH % 12 --总月份除以12取余--如果当前日减去生日的日小于0 ,将总月份除以12的余数减一IF @BDAY < 0 SET @AMONTH = @AMONTH - 1 --如果上一个条件成立,且当@AMONTH=0 时,@AMONTH = @AMONTH - 1<0 ,条件成立,年龄=@AYEAR-1,月份=@AMONTH=12+@AMONTHIF @AMONTH < 0 SELECT @AYEAR = @AYEAR - 1, @AMONTH = 12 + @AMONTH IF @BDAY < 0BEGINSET @BIRTHDAY = DATEADD(MONTH, @AMONTH, @BIRTHDAY)SET @BIRTHDAY = DATEADD(YEAR, @AYEAR, @BIRTHDAY)SET @BDAY = DATEDIFF(DAY, @BIRTHDAY, @ADATE)ENDSET @RVALUE=CAST(@AYEAR AS VARCHAR)+'岁'+CAST(@AMONTH  AS VARCHAR)+'月'+CAST(@BDAY  AS VARCHAR)+'日'SELECT @RVALUEEND 


在后边加上这句,即可实现精确到分

 elseif @aDay = 0beginset @amin = datediff(minute, @BIRTHDAY, @aDate)if @amin > 0beginset @ahour = @amin / 60set @amin =@amin % 60if @ahour = 0 set @rvalue = convert(varchar(9), @amin) + '分'elseif @ahour > 0 set @rvalue = convert(varchar(9), @ahour) + '时'+convert(varchar(9), @amin) + '分'endSELECT @RVALUEend

js生日计算年龄_用T-SQL计算明细年龄问题.相关推荐

  1. 边缘计算架构_多接入边缘计算框架与参考架构简介

    1. 引言 在2014年,欧洲电信标准化协会(European Telecommunications Standards Institute, ETSI)将边缘计算与移动通信网络融合,提出了移动边缘计 ...

  2. crout分解计算例题_专题:化学方程式计算

    一. 根据化学方程式的简单计算 (1) 根据化学方程式计算的依据 化学方程式表达的信息之一是反应物与生成物之间在"遵循固定质量比"的前提下的质量守恒.根据这一信息,可以利用化学方程 ...

  3. 给定经纬度计算距离_通过经纬度坐标计算距离的方法(经纬度距离计算)ZZ

    通过经纬度坐标计算距离的方法(经纬度距离计算) 最近在网上搜索"通过经纬度坐标计算距离的方法",发现网上大部分都是如下的代码: #define PI 3.14159265 stat ...

  4. excel表格计算年龄_在Excel中计算年龄

    excel表格计算年龄 Can you remember how old you are? Or are you like me, and have to ask, "What year i ...

  5. 用函数计算工龄_还在加班熬夜求年龄,算工龄,学会这招让你分分钟钟搞定这些!...

    点击上方蓝色小字 关注我们哟! 前几天有个朋友给我吐槽,老大要她把全公司500号人的年龄和工龄统计下,忙得她周末都没有休息好,结果因为有几个数据一不小心弄错了,还被老大嫌弃了一番,郁闷至极.后来仔细一 ...

  6. python计算学生年龄_用pandas快速统计学生年龄班级等分组信息

    最近收到一个求助邮件,他的需求如下: 我是小学的一名统计员,因长期做统计工作,近期,自学一点python,但如何把excel中的8位数出生日期转成年龄,一直做不好,现请您帮忙一下,不知能否帮! 这个问 ...

  7. 平流式沉淀池计算例题_平流式沉淀池计算例题

    平流沉淀池的设计: 已知设计水量Q=300000m 3/d .设计平流式沉淀池. 2.设计计算 (1)池容积W (2)单池容积W (3)单池池面积F (4)池深H (5)池长L (6)池宽B 1.Q= ...

  8. 推理计算过程_初中物理电学计算题第六讲:极值问题推理和限制条件

    初中物理电学计算题第六讲:极值问题推理和限制条件 前面已经讲过:初中物理电学计算题第三讲:串联电路电流电阻极值推理实例,本讲是这一问题的进一步深入讨论. 题型分析 极值问题是电学计算题中一类较难的题目 ...

  9. python 跳过计算错误_在python中计算分数时如何跳过被0除的错误?

    我正在运行一个很长的CSV文件下面的函数.函数每50行计算列MFE的Z分数.这50行中有一些只包含零,因此在计算Zscore时,程序会停止,因为它不能被零除.如何解决这个问题,而不是停止程序运行打印这 ...

  10. python 科学计算设计_《Python科学计算-(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...

    第1章 Python科学计算环境的安装与简介 1 1.1 Python简介 1 1.1.1 Python 2还是Python 3 1 1.1.2 开发环境 2 1.1.3 集成开发环境(IDE) 5 ...

最新文章

  1. linux iptables详解
  2. 列举6个常见且实用的Web前端性能优化方法
  3. python多维数据分析_Python 数据分析:numpy 多维数组 ndarray
  4. ffplay命令汇总
  5. 细节之中自有天地,整洁成就卓越代码
  6. windows下的workon env
  7. 测试面试题集-Python三局两胜小游戏
  8. git与gitk查看某个文件的历史提交记录
  9. Makefile编写练习题
  10. ai google 风格化图像_谷歌 AI 新方法:可提升 10 倍图像识别效率,关键还简单易用...
  11. C++ Primer 第5版--练习9.31
  12. 如何在Linux里面安装Java的运行环境(详细过程)
  13. html播放器投屏,迅雷播放器投屏到电视如何操作
  14. 参数是list集合校验,使用@Vaild或者@Vaildated不起作用
  15. 总价合同、成本补偿合同、工料合同
  16. 如何关闭Mybatis的DEBUG log打印
  17. 关于simplis仿真和驱动方法
  18. js【详解】arr.splice() 数组拼接
  19. qt 为什么只有86安装版的_为什么有的家长付出一切,孩子却不领情、不感恩、不理解?...
  20. 申请邮箱需要什么,邮箱申请方法开通条件教程分享

热门文章

  1. 原来音色是波峰到波谷时间序列
  2. 云上人替代方案训练代码
  3. 如何压缩神经网络(将已经训练好的压缩)
  4. 如何让语音助手通过图灵测试
  5. vue实现点击改变颜色
  6. 卷积神经网络的一些规则
  7. Javascript标准DOM Range操作
  8. 为什么说百度教育大脑3.0,是中国教育迎来的真正智慧大脑?
  9. LINUX内核分析第八周总结:进程的切换和系统的一般执行过程
  10. Codeforces 611D New Year and Ancient Prophecy DP