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)
解决一个“问题”
我正在尝试提取日期的年份以计算用户的年龄。 '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)
解决一个“问题”