在 Presto 中将 yyyyMMdd 字符串转换为日期时间

Convert yyyyMMdd string into datetime in Presto

我有一个生日列,日期格式为“20100731”,我想将其转换为日期时间,以便获取用户的年龄。

我试过多次施法,但没有成功。

只能想到做

year(current_date) - cast(substr('20100731', 1,4) as int)  

这很好用,但我想知道如何将 'yyyyMMdd' 字符串转换为日期时间格式

我们可以尝试使用DATE_PARSE将输入的字符串转换为日期,然后将年份与当前日期相差:

SELECT DATE_DIFF('year', DATE_PARSE('20100731', '%Y%m%d'), CURRENT_DATE) AS age
FROM yourTable;