在 SQL 中查找某人的年龄 [英] Finding someone's age in SQL

查看:29
本文介绍了在 SQL 中查找某人的年龄的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 SQL Server 数据库中,我记录了人们的出生日期.是否有一种仅使用 SQL 计算给定日期的人的年龄的直接方法?

In a SQL Server database, I record people's date of birth. Is there an straight-forward method of working out the person's age on a given date using SQL only?

使用 DATEDIFF(YEAR, DateOfBirth, GETDATE()) 不起作用,因为它只查看日期的年份部分.例如 DATEDIFF(YEAR, '31 December 2007', '01 January 2008') 返回 1.

Using DATEDIFF(YEAR, DateOfBirth, GETDATE()) does not work as this only looks at the year part of the date. For example DATEDIFF(YEAR, '31 December 2007', '01 January 2008') returns 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 

这篇关于在 SQL 中查找某人的年龄的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆