我正在尝试构建一个用于计算年龄的tvf。目前,我正在使用此代码,这会带来一些问题。
代码:
IF ( MONTH (GETDATE()) = (SELECT MONTH (ISNULL (PERS_DateBirth, '1900-01-01'))
FROM T_Person)
AND DAY (GETDATE()) >= (SELECT DAY (ISNULL(PERS_DateBirth, '1900-01-01'))
FROM T_Person)
OR MONTH (GETDATE()) > (SELECT MONTH (ISNULL (PERS_DateBirth, '1900-01-01'))
FROM T_Person)
)
SELECT YEAR (GETDATE()) - YEAR (ISNULL (PERS_DateBirth, '1900-01-01'))
FROM T_Person
ELSE SELECT YEAR (GETDATE()) - YEAR (ISNULL (PERS_DateBirth, '1900-01-01')) - 1
FROM T_Person
问题:
PS。我更喜欢上面的构造/逻辑,而不是使用365,25天的DATEDIFF构造等等。
感谢大家的帮助,如果上面的代码不清楚,请告诉我。