可能的重复:
如何在 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(使用前将#替换为@)