SQL で生年月日から年齢を算出する

Snowflake で作った DWH 上で生年月日から年齢を算出する必要があったのでメモ。

今日の日付YYYYMMDD から 誕生日YYYYMMDD を数字としてマイナスして、10000で割って端数を切り捨てればOK

select
    floor((to_varchar(current_date, 'YYYYMMDD')::number 
        - to_varchar(d.date_of_birth, 'YYYYMMDD')::number) / 10000) as age
from
    dim_person as d;