当前位置: 首页 > 面试题库 >

在SQL中找到某人的年龄

祁杰
2023-03-14
问题内容

在SQL Server数据库中,我记录了人们的出生日期。是否有仅使用SQL来计算给定日期的人的年龄的简单方法?

使用 DATEDIFF(YEAR,DateOfBirth,GETDATE()) 不起作用,因为它仅查看日期的年份部分。例如
DATEDIFF(YEAR,‘2007年12月31日’,‘2008年1月1日’) 返回1。


问题答案:

查看本文:如何使用SQL代码计算一个人的年龄

这是文章中的代码:

DECLARE @BirthDate DATETIME
DECLARE @CurrentDate DATETIME

SELECT @CurrentDate = '20070210', @BirthDate = '19790519'

SELECT DATEDIFF(YY, @BirthDate, @CurrentDate) - CASE WHEN( (MONTH(@BirthDate)*100 + DAY(@BirthDate)) > (MONTH(@CurrentDate)*100 + DAY(@CurrentDate)) ) THEN 1 ELSE 0 END


 类似资料:
  • 问题内容: 我想以Java方法的整数形式返回年龄(以年为单位)。我现在所拥有的是getBirthDate()返回Date对象(带有出生日期;的以下内容: 但是由于不赞成使用getYear(),所以我想知道是否有更好的方法可以做到这一点?我什至不确定这是否能正常工作,因为我还没有进行单元测试。 问题答案: JDK 8使这个变得轻松而优雅: 一个JUnit测试以证明其用法: 现在每个人都应该使用JDK

  • 我是SQL新手,正在尝试解决以下问题: 我有一个马拉松表,有两个不同的年份,其中一个是马拉松比赛,还有一个专栏描述了运动员在特定年份参加的比赛。我想返回参加2001年而不是2000年的运动员的姓名。到目前为止,我尝试了不同的查询(exists、not-in和not等),但都没有成功。

  • 我在使用IMDb数据集时遇到了一个问题,我似乎无法解决这个问题。这个问题要求只放映1995年制作的电影。问题是,这一年是与每一个电影标题一起列出的,即:“玩具总动员(1995)”。你怎么能从一串文本中刮出年份? 问题是:

  • 问题内容: 我有以下sql查询,该查询提供了按月,周和日分组的总h_time。相反,我想要月,周和日的h_time中位数。如何在Oracle SQL中做到这一点? 输出: 问题答案: 您的问题可能出在DATE类型携带的时间部分(即使您未明确设置它)。 要摆脱它,您可以使用trunc函数。 代替: 经过: 和: 经过:

  • 问题内容: 我为服务器制作了一个简单的报价机器人,但管理员只希望mod +人员能够添加报价以避免垃圾邮件。我去了文档并做了所有工作,但是我无法使它正常工作。这是我所拥有的: 非常挑剔。有时,如果用户具有mod角色,它通常会起作用。如果我做 两者都将输出为false,但是会起作用吗?老实说,目前我还不知道。 问题答案: discord.js api已更新,并且自弃用以来有一种更好的方法。 这好于因为

  • 问题内容: 我向我的脚本发送这些参数:纬度:41.0186经度:28.964701(为示例)。我想找到最近的位置的名字。这该怎么做?(查询的代码必须更改的地方) SQL查询: 位置表是这样的:(实际上,这是巨大的表) 问题答案: 使用这个功能 您可以通过此功能进行排序,但是在大型数据集上这将非常慢,因此请尝试对记录集进行预过滤 UPD: 使用@chopikadze的测试数据: 假设地球不是大地水准