如何计算两个日期之间的年龄/年数[重复]

2024-01-07

可能的重复:
如何在 T-SQL 中用年、月、日计算年龄 https://stackoverflow.com/questions/57599/how-to-calculate-age-in-t-sql-with-years-months-and-days

在我正在进行的一个项目中,我需要计算一个人加入系统时的年龄;在互联网上查看后,我发现了多种方法可以做到这一点,但大多数方法在涉及闰年时都会遇到一些小问题。

下面的解决方案是我如何计算过去的年数/年龄。希望这对其他人有帮助


您需要将以下方法添加到数据库中:

CREATE FUNCTION [dbo].[fnCalAge] (@DiffFrom DATE, @DiffTo DATE) RETURNS INT
AS
BEGIN
    DECLARE @NumOfYears INT
    SET @NumOfYears = (SELECT 
                         DATEDIFF(YEAR, @DiffFrom, @DiffTo) + 
                         CASE 
                           WHEN MONTH(@DiffTo) < MONTH(@DiffFrom) THEN -1 
                           WHEN MONTH(@DiffTo) > MONTH(@DiffFrom) THEN 0 
                           ELSE 
                             CASE WHEN DAY(@DiffTo) < DAY(@DiffFrom) THEN -1 ELSE 0 END 
                         END)
    IF @NumOfYears < 0
    BEGIN
        SET @NumOfYears = 0;
    END

    RETURN @NumOfYears;
END

然后,您可以在 SQL 查询中调用它,类似于以下内容:

SET DATEFORMAT dmy 

SELECT dbo.fnCalAge(CAST('20/06/1987' AS DATE), CAST('20/06/2013' AS DATE))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算两个日期之间的年龄/年数[重复] 的相关文章

  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • SQL WHERE 取决于星期几

    我需要检查不同日期的记录 具体取决于当前是一周中的哪一天 在周五 我需要它查看整个下周 直到下周日 在其他任何一天 它都应该检查当前周 直到下周日 我目前有以下内容 但由于语法错误而无法工作 是否可以做一个CASE WHEN里面一个WHER
  • SQL Server:应用正则表达式替换

    这是我的 SQL 查询 select codi nivell from anc documents 示例数据是 06080100000000 06080100000000 06080100000000 06080100000000 0608
  • 如何获取日期时间字段的 UTC?

    我正在使用 MySQL 5 并且正在尝试将日期时间字段转换为 UTC TIMESTAMP 这是我所拥有的 但它不起作用 并且不确定我是否可以做到这一点 但有人可以告诉我我做错了什么吗 谢谢 我已经尝试过这个 SELECT UTC TIMES
  • 查询和扫描多行性能缓慢

    下面的查询一行的执行时间为 6 18 分钟 Exception type 1 的基数值为 3 我不知道如何提高性能 Query select count 1 as rage tap from summary funnel 1066 s jo
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • SQL Server 是否在复杂视图中传播 WHERE 条件?

    我在这个问题之后提供了一个完整的示例 以防不清楚我的问题的意思 我创建了一个视图 它连接了大约五个表中的数据 这些表包含大量数据 查询运行速度很慢 我的问题是 如果我这样做 SELECT FROM myView WHERE PersonID
  • 同一表中同一列的 SQL 完全外连接

    这可能更多的是一个设计问题 但我希望这在没有太多巫术的情况下是可能的 假设我有一个这样的表 SELECT FROM stuff id grp 1 a 2 a 3 a 1 b 2 b 4 b 我想要得到这样的东西 ID 按列分组 a id b
  • 如何使用单个查询对从另一个表检索的表列表进行 UNION?

    我有一个表 其中包含 PostgreSQL 中的表列表 id table 1 table1 2 table2 3 table3 我想从所有这些表的联合中进行选择 例如 伪代码 select from union select table f
  • 如果字符串包含数字,则仅返回字符串中的数字

    例如 字符串是abc123CD需要找到一种只读方法numbers在字符串中i e select a postgres function abc123CD Result 123 My try select substring abc123CD
  • 批量插入,asp.net

    我需要获取与会员相对应的 ID 号列表 在任何给定时间处理的数量可能在 10 到 10 000 之间 我可以毫无问题地收集数据 解析数据并将其加载到 DataTable 或任何内容 C 中 但我想在数据库中执行一些操作 将所有这些数据插入表
  • MySQL - 连接 a 或 b

    假设我有一个TABLE a其中一个COLUMN data是一个join其他 2 张桌子 TABLE b and TABLE c 因为我想得到一个COLUMN info in b or c 事情是a data将匹配only with b da
  • 发布Oracle和SQL Server性能测试是否违反许可? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想对Oracle和SQL Server中的空间索引进行性能测试 我想将其纳入我的理学硕士工作中 发布此类结果是否违反 dbms 的许可 也许有人已经
  • 使用 ActiveRecord 和 Yii2 记录实际的 SQL 查询?

    我正在这样做 students Student find gt all return this gt render process array students gt students 然后在视图中 foreach students as

随机推荐

  • 为什么Dev C++编译后PE文件中多了这么多节?

    我用C C 写了一些简单的代码 在win10上用Dev C MinGW 编译为PE格式 我使用 Stud PE 工具查看编译后的exe的PE文件结构如下 正如您所看到的 除了正常的文件部分 如 text data bss 之外 还有一些其他
  • 结帐单个产品:验证购物车中是否有任何产品,并给出错误

    我无法想象如何验证购物车内是否有某些产品 我只需要允许一种产品进行结账 这是 class wc cart php 中使用的代码 用于防止在购物车中已存在相同产品的情况下添加产品 并且我确信应该非常相似 但我缺少一些 WP 变量来定义任何产品
  • 空字符串上的 ToString

    为什么其中第二个会产生异常 而第一个却不会 string s null MessageBox Show s MessageBox Show s ToString 更新 我可以理解的异常 对我来说 令人困惑的是为什么第一部分没有显示异常 这与
  • 如何在 PHP 7.1.1 中对浮点值进行 json_encode?

    PHP好像有a bug https bugs php net bug php id 72567它在 json encode 中处理小数精度的方式 只需对一个简单的浮点数进行编码就很容易看出 echo json encode testVal
  • Collectionview PerformBatchUpdates 崩溃

    我正在尝试使用 insertItemsAtIndexPaths 将新项目添加到我的集合视图中 我的应用程序在执行 Batchupdate 时崩溃 void addItems NSArray newProducts 1 2 3 4 self
  • WPF 的 Windows Phone 7 枢轴控件?

    是否有实施WP7 枢轴控制 https web archive org web 20150715170117 http blogs msdn com 80 b stephanc archive 2010 05 09 windows phon
  • git config --get-all 在哪里查看

    我找不到任何文档准确描述正在检查的 git 配置文件git config get all command正在运行 这是我为 core autocrlf 运行时的输出 git config get all core autocrlf fals
  • 在 ActionBarSherlock 上显示自定义按钮以显示滑动菜单

    我正在开发一个 Android 应用程序 使用动作栏夏洛克 http actionbarsherlock com with 滑动菜单 https github com jfeinstein10 SlidingMenu 现在 这就是我显示打开
  • numpy 中两个浮点数之间以对数间隔的数字

    我正在尝试使用 python 获取两个浮点数之间对数间隔的 1000 个数字 例如 0 674 到 100 0 之间 这样做的目的是获得更多接近 0 674 的数字 而不仅仅是接近 100 的几个大数字 我尝试使用 numpy logspa
  • Python3'无法导入名称'cached_property'

    我无法让它发挥作用 我不断添加模块 但每次都找不到新模块 为什么这段代码在Python3 6中不起作用 Code from robobrowser import robobrowser from bs4 import BeautifulSo
  • 区分 Javascript 中的触摸和交换事件

    我有一个用于交换图像的图片库 在画廊中 我使用了 touchstart touchmove touchend 和 touchcancel 事件 但现在我还需要处理触摸事件 那么 我应该在移动设备上分别区分触摸和交换事件吗 我正在使用这个技巧
  • python `str()` 函数是否调用类的 `__str__()` 函数?

    如果我定义一个有自己的类 str 函数 是str a 相当于a str where a是我班级的一个实例吗 我检查了蟒蛇文档 https docs python org 2 library functions html str 它没有明确说
  • 在 Groovy 中使用字符串访问地图的地图元素

    鉴于我有一张这样的地图 def myMap b c X 还有一根绳子 def key b c 我想查看使用密钥获取值 X 的选项 我自己想出了两种方法来实现这一目标 但我对这些解决方案不太满意 1 Eval me theMap myMap
  • 加密:在javascript和python中模拟SSL

    由于中国防火墙阻止了 google appengine 的 https 端口 所以我想通过javascript和python模拟一个安全套接字层来保护我的用户信息不会被那些ISP和GFW捕获 我的计划 握手 浏览器请求服务器 服务器生成加密
  • jaxb 当 xsi:nil=true 如果任何子元素存在它仍然显示

    我有以下 xml 输出 当父元素具有属性 xsi nil true 即使子元素为 nillable true 时 我们如何隐藏子元素 endDate XML输出
  • REST API 中错误 HTTP 方法的返回代码?

    我们的API用户可以获得root发送文件 收集清单 GET请求根 API 地址 如果他发送POST 我们应该返回一些东西 同样的问题也适用于其他资源路径 例如发送PATCH在查询路径等上 并非所有方法在某些路径上都有意义 正如我从 HTTP
  • 使用插值在模板中渲染 html 字符串?

    使用角度 4 3 0 假设我有一个像这样的字符串 它是组件的属性 p test 2 bla bla p p test1234 56 p p test test p 所以 我按照文档进行操作 https angular io guide te
  • 有没有办法知道哪个编译器生成了静态库?

    第三方为我提供了一个静态库 a 用于在 Solaris 站上链接 我尝试使用 sunpro 进行编译 但在链接步骤失败 我想这个问题来自我使用的编译器 而不是 gcc 或者只是它的版本 因为编译器提供的 std lib 可能会从库预期的版本
  • opencv多通道元素访问

    我正在尝试学习如何使用 OpenCV 的新 C 界面 如何访问多通道矩阵的元素 例如 Mat myMat size 3 3 CV 32FC2 for int i 0 i lt 3 i for int j 0 j lt 3 j myMat a
  • 如何计算两个日期之间的年龄/年数[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 T SQL 中用年 月 日计算年龄 https stackoverflow com questions 57599 how to calculate age in t sql with yea