【问题标题】:Calculating age at time of an event in SQL [duplicate]在SQL中计算事件发生时的年龄[重复]
【发布时间】:2020-06-21 14:41:19
【问题描述】:

根据事件计算年龄的最佳方法是什么?我正在尝试根据事件发生时的年龄来寻找个人?我对 SQL 和日期函数比较陌生,我无法理解。

例子:

ID        Name         Age   DOB          AdmitDate
1234      John Smith   61    1960-07-15   2019-10-22

如何计算录取日期时谁的年龄是 59 岁?

【问题讨论】:

  • 为了准确,我推荐这个stackoverflow.com/a/1572938/9947159
  • SELECT DATEDIFF(DAY, [DOB], AdmitDate) / 365 您可以将其用作派生列,放入临时表中,然后从该临时表中添加 WHERE 子句以查找59 岁。

标签: sql sql-server date


【解决方案1】:

DATEDIFF 提供了执行此操作的功能。

例如

SELECT DATEDIFF ( yy , '1960-07-15' , '2019-10-22' ) 

【讨论】:

  • SELECT DATEDIFF ( yy , '2019-12-31' , '2020-01-01' ) 返回什么?
  • @SalmanA 是的,这对我的问题不起作用。
  • @SalmanA 我显然没有答案,你为什么要结束我的问题?
  • @Leonardo 看到我链接到的问题。如果您的问题不同,请编辑带有解释的问题,我会重新打开。
【解决方案2】:
Select * from  yourtable 
where  DATEDIFF( year , CAST(DOB AS datetime), CAST(AdmitDate AS datetime)) >= 59

试试这个

【讨论】:

  • 这类作品。但它会在 1960 年的任何日期返回 59。
  • 日期为2019-12-31和2020-01-01返回1年(实际年龄只有1天)。
  • stackoverflow.com/q/57599/3943730 检查此链接以计算准确的日期差异
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 2021-08-21
  • 1970-01-01
  • 2019-08-12
相关资源
最近更新 更多