Sql 将整数列转换为日期-Prestodb

Sql 将整数列转换为日期-Prestodb,sql,date,join,where-clause,presto,Sql,Date,Join,Where Clause,Presto,我在表a中有一个日期列作为整数“20200101”,在表B中还有一个日期列作为日期“2020-01-01”。我想在联接条件中使用这两个列。如何将整数列转换为日期,然后匹配这两列 我试过这些: date\u formatfrom\u unixtimecasta.date作为字符串,'yyyyymmdd','yyyyy-MM-dd'=B.date CASTparse_datetimeCASTa.date作为varchar,“yyyyMMdd”作为date=B.date 它们都不起作用,任何帮助都将不

我在表a中有一个日期列作为整数“20200101”,在表B中还有一个日期列作为日期“2020-01-01”。我想在联接条件中使用这两个列。如何将整数列转换为日期,然后匹配这两列

我试过这些:

date\u formatfrom\u unixtimecasta.date作为字符串,'yyyyymmdd','yyyyy-MM-dd'=B.date

CASTparse_datetimeCASTa.date作为varchar,“yyyyMMdd”作为date=B.date


它们都不起作用,任何帮助都将不胜感激。

您首先应该努力修复您的数据模型:始终使用适当的数据类型来存储您的值将使您的长期生活更加轻松,并避免像这样不必要的问题

至于你的问题:一个选择是将日期转换为整数

a.date = cast(date_format(b.date, '%Y%m%d') as int)
您还可以表示为:

a.date = year(b.date) * 10000 + month(b.date) * 100 + day(b.date)
也可以将整数强制转换为日期:

date_parse(cast(a.date as varchar), '%Y%m%d') = b.date

非常感谢。我用了第一个,它成功了。是的,我已经将数据模型修复传递给了团队。