【问题标题】:Use LIKE, BETWEEN, TIMESTAMP for Athena in a Presto SQL statement?在 Presto SQL 语句中为 Athena 使用 LIKE、BETWEEN、TIMESTAMP?
【发布时间】:2020-12-16 13:53:56
【问题描述】:

如何将使用开始日期设为当前日期 - 2 天,并让开始日期的时间戳介于 00:00:000 和 23:59:59.999 之间?我必须使用 LIKE 和 %,因为通常时间戳包括年、月、日,但我不想每次运行时都插入它。

    WHERE line_item_usage_start_date = current_date - interval '2' day
AND line_item_usage_start_date BETWEEN(LIKE(TIMESTAMP '%00:00:00.000%' and TIMESTAMP '%2020-08-25 23:59:59.999%)';

【问题讨论】:

    标签: presto amazon-athena


    【解决方案1】:

    如果我理解正确,line_item_usage_start_date 是时间戳类型,您希望获取两天前一天开始和一天结束之间某处的所有行。在这种情况下,有几种方法可以解决这个问题:

    1. 您可以通过强制转换将时间戳转换为日期,然后将其与两天前的日期进行匹配:
    WHERE cast(line_item_usage_start_date AS DATE) = current_date - INTERVAL '2' DAY
    
    1. 使用current_timestampdate_trunc 计算对应于一天开始的时间戳,并将结果限制在2 天前一天的开始和1 天前的一天开始之间的范围内:李>
    WHERE line_item_usage_start_date >= date_trunc('day', current_timestamp - INTERVAL '2' DAY) AND 
          line_item_usage_start_date < date_trunc('day', current_timestamp - INTERVAL '1' DAY)
    

    【讨论】:

      猜你喜欢
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      相关资源
      最近更新 更多