0

我有一张包含出生日期的表格,我想使用 CreateFunction 来计算他们的年龄。

所以我在考虑从当前日期提取年份 - 他们的出生日期年份(使用 YEAR() 函数,如下所示)

下面的功能似乎不起作用,所以任何帮助将不胜感激!

DELIMITER $$
 
CREATE FUNCTION customer_age(DateOfBirth DATE)
RETURNS DATE
BEGIN
    DECLARE age DATE
    
    SET age = YEAR(curdate())- YEAR(DateOfBirth);
    
    RETURN (age);
    
    END $$
    
DELIMITER;
4

1 回答 1

0

你得到一个整数而不是日期,

查看示例

CREATE FUNCTION customer_age(DateOfBirth DATE)
RETURNS INT DETERMINISTIC
BEGIN
    DECLARE age INT;
    SET age = YEAR(curdate())- YEAR(DateOfBirth);
    
    RETURN age;
    
    END
SELECT customer_age('1970-01-01')
| customer_age('1970-01-01') |
| -------------------------: |
| 51 |

db<>在这里摆弄

于 2021-08-02T21:12:30.930 回答