Can't EXTRACT year of the date with BigQuery | error:No matching signature for function EXTRACT

Can't EXTRACT year of the date with BigQuery | error:No matching signature for function EXTRACT

我正在尝试提取日期的年份以计算用户的年龄。 'birthday' 是 YYYY-MM-DD 格式的字符串。

这是我的代码

SELECT username, birthday, CURRENT_DATE(),
    EXTRACT(YEAR FROM CURRENT_DATE()) - EXTRACT(YEAR FROM birthday) as age ,    
    FROM 
        `user`;

我的SQLtable'user':

username birthday
Name1 1999-05-11
Name2 1999-05-11

但是“EXTRACT(YEAR FROM birthday)”不起作用,我也没有找到问题所在。

完整的错误:

参数类型的函数 EXTRACT 没有匹配的签名:DATE_TIME_PART FROM STRING。支持的签名:EXTRACT(DATE_TIME_PART FROM DATE); EXTRACT(DATE_TIME_PART FROM TIMESTAMP [AT TIME ZONE STRING]);提取(DATE_TIME_PART 从日期时间);从时间中提取(DATE_TIME_PART);在 [2:41]

处提取(DATE_TIME_PART FROM INTERVAL)

下面使用

select username, birthday, current_date(),
extract(year from current_date()) - extract(year from date(birthday)) as age ,    
from `user`;        

注意date(birthday)解决一个“问题”