Excel中有个计算日期差的函数datedif,SqlServer中也有一个类似函数datediff,但是两个函数的计算逻辑是不一致的:

Excel中的datedif函数,计算精度到日,不足日的月份差额要减一,不足月的年份差额要减一,例如

DATEDIF("1976-09-29","2022-09-28","y") = 45

但是在SqlServer中,计算年份日期差是直接按照年份数值相减,而不会考虑是否足月;计算月份差也是直接年份加月份相减,也不会考虑日期是否不足,所以上面两个日期在SqlServer中计算结果会不一样

SELECT DATEDIFF(yy,'1976-09-29', '2022-09-28') = 46

项目中有个需求需要计算人员实际年龄,如果在Excel中计算就非常容易,直接用DATEDIF函数就能算出人员实际年龄,但是如果在SqlServer中,就稍微麻烦点了,直接使用DATEDIFF函数算出来的实际年龄是虚岁,所以要改一下sql的计算,修改如下:

SELECTCASE WHEN MONTH(getdate())-MONTH('1976-09-29') > 0 THENyear(getdate())-year('1976-09-29')ELSE CASE WHEN MONTH(getdate())-MONTH('1976-09-29') = 0 THENCASE WHEN Day(getdate()) - Day('1976-09-29') < 0 THENyear(getdate())-year('1976-09-29')-1ELSE year(getdate())-year('1976-09-29')ENDELSEyear(getdate())-year('1976-09-29')-1ENDEND

SqlServer中计算实际年龄的方法相关推荐

  1. python如何使用三角函数_Python中计算三角函数之cos()方法的使用简介

    Python中计算三角函数之cos()方法的使用简介 这篇文章主要介绍了Python中计算三角函数之cos()方法的使用简介,是Python入门的基础知识,需要的朋友可以参考下 cos()方法返回x弧 ...

  2. python计算cos_Python中计算三角函数之cos()方法的使用简介

    Python中计算三角函数之cos()方法的使用简介 cos()方法返回x弧度的余弦值. 语法 以下是cos()方法的语法: cos(x) 注意:此函数是无法直接访问的,所以我们需要导入math模块, ...

  3. sqlserver中计算某个特殊字符在字符串中出现的位置

    -- ============================================= -- Author: Evan -- Create date: 2018年3月15日10:59:45 ...

  4. sqlserver中删除重复行的方法

    前段时间,公司同事不小心在数据库表中重加了数据,不多,7000条左右.因为信息比较重要,不能删错了.但也不能有重复数据.所以找我求救. 解决问题后,总结如下: SQL Server删除重复行是我们最常 ...

  5. YOLO-目标检测中计算AP、MAP方法

    根据这个代码就可以计算到出各类别的AP/MAP值 # -------------------------------------------------------- # YOLOv4 # 2020. ...

  6. 在SQLServer中区分大小写的几种方法

    第一种:(蟋蟀) ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS --不区分大小写 ALTER ...

  7. sql 批量插入数据到Sqlserver中 效率较高的方法

    使用SqlBulk #region 方式二 static void InsertTwo() { Console.WriteLine("使用Bulk插入的实现方式"); Stopwa ...

  8. sqlserver中计算日期差

    SELECT DATEDIFF(d,'2005-07-20','2005-7-25 22:56:32') 注:计算相差天数结果为5 注:https://www.jianshu.com/p/77f290 ...

  9. SqlServer中BCP导出数据的方法

    exec master..xp_cmdshell 'bcp "select * from canyin.dbo.t_chanpin" queryout c:/csv/a.csv - ...

最新文章

  1. Codemirror-开源在线代码编辑器
  2. spring mvc DispatcherServlet详解之一---处理请求深入解析(续)
  3. APM - 使用JavaAgent+Javassit 插桩C3P0
  4. 思考 | 人工智能时代:AI芯片能否实现弯道超越?
  5. [转载]Linux下getopt()函数的简单使用
  6. 指纹图谱相似度评价软件_不同产地佛手指纹图谱及模式识别研究
  7. 三、后台实战——用户登录之JWT
  8. 图像像素点赋值_OpenCV学习笔记(二)之图像阈值化
  9. Python excel转txt文件
  10. 矩阵分解(5)-- 正定矩阵与半正定矩阵
  11. [Python从零到壹] 五十三.图像增强及运算篇之直方图均衡化处理
  12. 金税盘时钟异常的处理方法及处理流程
  13. 百度、阿里、美团、头条…论剑AI,这里有开发者想知道的未来
  14. 还是忍不住说说特斯拉的恐怖
  15. 手机电源键关不了屏幕_手机关机关不了,屏幕也划不了,怎么办
  16. Cordova app 检查更新 ----JS进行调用(二)
  17. python-opencv图片合成视频
  18. Matlab--绘制高逼格地形图
  19. python心理学实验程序_心理学实验设计程序软件除了 DMDX,E-prime,还有哪些?
  20. 贾小伟—Web前端开发工程师(作品集)

热门文章

  1. mysql 源码下载
  2. 树莓派Raspberry
  3. 【泛微E9功能点】考勤管理-应用设置
  4. 用php调用api接口,常用的命令有哪些呢?
  5. python redis密码登录_Python远程连接Redis
  6. Linux常用命令——rpmbuild命令
  7. Impinj及Accruent医疗合作推出医疗设备跟踪方案
  8. 小程序历程_行动应用程式使用者历程简介
  9. 网页自动获取题目匹配题库答案填充(原创1.0)
  10. 购物车功能实现(HTML学习笔记)