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

时间:2019-04-09 00:16:41

标签: sql date amazon-athena presto

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

我想通过几列加入他们,其中之一是日期。

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

 "08/31/2018"

另一个将其编码为

 "8/31/2018"

有没有办法使它们具有相同的格式?

我不确定是否容易将多余的0添加到缺少多余的0的字符串中,或​​将多余的0链接到字符串中。

根据我的研究,我认为我必须使用CASE和CONCAT函数。

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

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

无论我何时将其加载到数据库中,即使它们具有相同的日期类型,它也始终以不同的格式加载它们。

一个带有多余的0,另一个没有。

我没有尝试过的最后一条途径是通过SQL查询。

但是我对Athena并不熟悉,并且在格式化该查询时遇到了困难。

我知道这很模糊,因此如果需要,请询问我更多信息。

如果有人可以帮助我启动此查询,我将不胜感激。

谢谢您的帮助。

这是在雅典娜更改日期的查询。

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

尽管雅典娜表一经创建便是不可变的。

1 个答案:

答案 0 :(得分:1)

您可以使用date_parse(t1.datecol, '%m/%d/%Y') = str_to_date(t2.datecol, '%m/%d/%Y') 将值转换为日期。因此,这应该可行:

{{1}}

话虽如此,您应该修复数据模型。将日期存储为日期,而不存储为字符串!然后,您可以使用相等联接,这在各个方面都更好。