首页 文章

如何将出生日期格式化为'yyy-mm-dd'并从那里计算年龄

提问于
浏览
0

我目前正在处理一个数据集,我必须计算员工的年龄,但出生日期的格式如下:
1987-05-17T00:00:00如何从出生日期中删除'T00:00:00'?

从那以后我想计算年龄,我试图用这种方式做:

FLOOR(DATE_DIFF(CAST(CURRENT_DATE() AS DATE)), CAST(Birthdate AS DATE))) AS Age

但是,当我不断收到以下错误:

Error: No matching signature for function DATE_DIFF for argument types: DATE. Supported signature: DATE_DIFF(DATE, DATE, DATE_TIME_PART) at [27:9]

我认为这个错误是由于开始时的奇怪日期格式而产生的 . 但我不完全确定 .

任何人都可以帮我解决这个问题吗?

2 回答

  • 1

    以下是BigQuery Standard SQL

    FLOOR(DATE_DIFF(CURRENT_DATE(), PARSE_DATE('%Y-%m-%dT00:00:00', Birthdate), YEAR)) AS Age
    
  • 0

    这是我用来计算年,月和日的年龄的查询:

    SELECT 
    username
    ,dob
    ,DATE_FORMAT(CURDATE(), '%Y') - DATE_FORMAT(dob, '%Y') - (DATE_FORMAT(CURDATE(), '00-%m-%d') < DATE_FORMAT(dob, '00-%m-%d')) AS years
    ,PERIOD_DIFF( DATE_FORMAT(CURDATE(), '%Y%m') , DATE_FORMAT(dob, '%Y%m') ) AS months
    ,DATEDIFF(CURDATE(),dob) AS days
    FROM users
    

相关问题