AWS Athena - 如何更改日期字符串的格式

AWS Athena - How to change format of date string

我想加入 AWS Athena 数据库中的两个表。

我想按几列加入它们,其中一列是日期。

然而在一个数据集中,日期字符串被编码为单值月份被编码为

 "08/31/2018"

而另一个会将其编码为

 "8/31/2018"

有没有办法让它们成为相同的格式?

我不确定将额外的 0 添加到缺少额外 0 的字符串或连接具有额外 0 的字符串是否更容易。

根据我的研究,我认为我将不得不使用 CASE 和 CONCAT 函数。

两个表都是从CSV文件加载到数据库中的,变量都是字符串格式。

我试过在 CSV 文件中手动更改值,尝试 运行 在其中一个表格上使用 R 脚本以相同的方式格式化日期,并且还尝试将表格重新加载到数据库为相同的日期格式。

然而,无论何时将其加载到数据库中,无论我做什么,即使它们具有相同的日期类型,它也总是以不同的格式加载它们。

一个有额外的 0,另一个没有。

我还没有尝试过的最后一种方法是通过 SQL 查询。

但是我不太熟悉 Athena,很难格式化此查询。

我知道这很模糊,所以如果您需要,请向我询问更多信息。

如果有人可以帮助我开始这个查询,我将不胜感激。

感谢您的帮助。

这是在 Athena 中更改日期的查询。

  date_parse(table.date_variable,'%m/%d/%Y')

虽然 Athena 表在创建后是不可变的。

您可以使用 date_parse() 将值转换为日期。所以,这应该有效:

date_parse(t1.datecol, '%m/%d/%Y') = str_to_date(t2.datecol, '%m/%d/%Y')

话虽如此,您应该修复数据模型。将日期存储为 dates 而不是 strings!然后你可以使用相等连接,这样就更好了。