如何从SparkSQL中的天数中获取年份

lnxxn5zx  于 2023-06-24  发布在  Apache
关注(0)|答案(1)|浏览(199)
select
  datediff('year',CURRENT_DATE,birthday) as user_age
from user_table limit 20

我尝试使用上面的代码,但它给了我下面的错误。它只需要两次约会,我不想除以365。有没有其他功能可以使用。

ajsxfq5m

ajsxfq5m1#

你可以使用date_part来获取两个日期的年份,然后减去它们:

select date_part('year', CURRENT_DATE) - date_part('year', birthday) from user_table

这种方法倾向于off-by-one errors
为了避免这个错误,你还必须考虑日期和月份:

select 
  birthday,
  date_part('year', CURRENT_DATE) - date_part('year', birthday) +
    if((date_part('month', CURRENT_DATE) - date_part('month', birthday)) * 100 + 
        date_part('day', CURRENT_DATE) - date_part('day', birthday)  < 0, -1, 0)
  as age
from user_table

相关问题