【问题标题】:Week starting date from date in an older version of Presto从旧版本 Presto 中的日期开始的周开始日期
【发布时间】:2020-07-29 04:37:50
【问题描述】:

我有一个有点直截了当的问题,我试图在 Presto 中找到给定日期的星期开始日期(星期日)。通常我会尝试

DATE_FORMAT(date(DateID),'%X%V') as WeekStartingDate,

但我使用的 0.144 文档说 they're not currently supported。我在 MySQL 环境中使用的一种方法类似于

DATE_ADD(DateID, INTERVAL(1-DAYOFWEEK(DateID)) DAY)

但是 Presto 没有 DAYOFWEEK 功能。我也试过做

concat( cast(year(DateID) as varchar) , cast(week(DateID) as varchar)) as WeekStartingDate,

但问题是数据没有正确排序。例如,我将在 202010 旁边获得 20201。有没有我没有想到的推荐解决方案?

【问题讨论】:

标签: presto


【解决方案1】:

找到答案:

date_trunc('week', date(DateID))

【讨论】:

    【解决方案2】:

    您也可以在第二次尝试中使用lpad

    concat( cast(year(DateID) as varchar) , lpad(cast(week(DateID) as varchar),2,'0') ) as WeekStartingDate,
    

    这将得到很好排序的202001, 202002...., 202010, 202011, etc..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多