【问题标题】:AWS Athena - How to change format of date stringAWS Athena - 如何更改日期字符串的格式
【发布时间】:2019-08-30 04:39:53
【问题描述】:

我想加入 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 表在创建后是不可变的。

【问题讨论】:

    标签: sql date amazon-athena presto


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2016-06-25
    • 1970-01-01
    • 2011-05-04
    • 2022-07-04
    • 2018-02-23
    • 2020-01-13
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多