Sql 编码功能根据出生日期计算年龄
我试图通过调用下面的函数来填充表中的一个字段,以根据其出生日期计算此人的年龄。执行代码时,我收到以下错误: 错误:关键字“END”附近的语法不正确 我不知道为什么?请帮忙Sql 编码功能根据出生日期计算年龄,sql,sql-server,Sql,Sql Server,我试图通过调用下面的函数来填充表中的一个字段,以根据其出生日期计算此人的年龄。执行代码时,我收到以下错误: 错误:关键字“END”附近的语法不正确 我不知道为什么?请帮忙 CREATE FUNCTION findAge (@dateOfBirth DATE) AS RETURNS INT BEGIN RETURN (FLOOR(DATEDIFF(YEAR,@dateOfBirth, GETDATE())) END 你错过了一个结束语。谢谢你的帮助,我觉得自己是个白痴(我自己:)谢谢你的帮助,我
CREATE FUNCTION findAge
(@dateOfBirth DATE)
AS
RETURNS INT
BEGIN
RETURN (FLOOR(DATEDIFF(YEAR,@dateOfBirth, GETDATE()))
END
你错过了一个结束语。谢谢你的帮助,我觉得自己是个白痴(我自己:)谢谢你的帮助,我觉得自己是个白痴(我自己:)除了答案中指出的语法错误,此函数将无法正确返回年龄,因为DATEDIFF仅统计跨越的datepart边界数。而不是考虑<代码>返回(CAST(Char(char(8),GETDATE(),112)为int)-CAST(转换(char(8),@ DeaOfBoin,112)为int)/10000;<代码>只需补充一下@DanGuzman的答案:Peter Larsson对此有一篇精彩的评论。
CREATE FUNCTION findAge (@dateOfBirth DATE)
RETURNS INT
AS
BEGIN
DECLARE @Age INT;
SET @Age = FLOOR(DATEDIFF(YEAR,@dateOfBirth, GETDATE()));
RETURN @Age;
END
CREATE FUNCTION findAge (@dateOfBirth DATE)
RETURNS INT
AS
BEGIN
DECLARE @Age INT;
SET @Age = FLOOR(DATEDIFF(YEAR,@dateOfBirth, GETDATE()));
RETURN @Age;
END