我想加入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')
尽管雅典娜表一经创建便是不可变的。
答案 0 :(得分:1)
您可以使用date_parse(t1.datecol, '%m/%d/%Y') = str_to_date(t2.datecol, '%m/%d/%Y')
将值转换为日期。因此,这应该可行:
{{1}}
话虽如此,您应该修复数据模型。将日期存储为日期,而不存储为字符串!然后,您可以使用相等联接,这在各个方面都更好。