【问题标题】:How to increment weeks by adding number如何通过添加数字来增加周数
【发布时间】:2022-09-23 17:24:26
【问题描述】:

我有一个表,其中包含字符串和数字中的周数。我想将数字与周相加并得到下周。

例如 表A

week    num
2022-1  1
2022-3  3

输出

week   num  new_week
2022-1  1  2022-2
2022-3  3  2022-6
2022-52 2  2023-2

结果,我将星期转换为日期,将星期添加到日期,最后将日期转换回星期。但是,当我尝试按周工作时,我遇到了问题。下面的 SQL 是我正在使用的

CONCAT(YEAR(DATEADD(\'week\', num, date)), WEEK(DATEADD(\'week\', num, date)))

我没有使用日历年。由于我的一周从每年的第一个星期五开始,因此计算不正确。是否有可能避免将周转换为日期和日期转换为周的需要?

    标签: mysql sql snowflake-cloud-data-platform


    【解决方案1】:

    通过一些字符串摆弄,您可以像这样进行计算。

    SELECT week, num, CONCAT( SUBSTRING(week FROM 1 for 5), num + SUBSTRING(week FROM INSTR(week, '-')+1))
    FROM table;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2010-11-05
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      相关资源
      最近更新 更多