从 Aginity 工作台中的周数和年份获取一周的最后一天

Posted

技术标签:

【中文标题】从 Aginity 工作台中的周数和年份获取一周的最后一天【英文标题】:Getting last day of week from week number & year in Aginity workbench 【发布时间】:2017-08-15 08:38:12 【问题描述】:

我正在使用 Netezza SQL。

我的数据集中有周数和年份作为组合条目。例如,“2017 年第 3 周”。我想使用这个字段来获取一周中最后一天的日期。在这种情况下,我应该得到“21-Jan-2017”。

对我该怎么做有什么想法吗?

谢谢。

【问题讨论】:

【参考方案1】:

这是一个可能对你有用的例子:

SELECT  DATE(year_num || '-01-01') + CAST(((week_num * 7) - 1) || ' DAYS' AS INTERVAL)
  FROM  (SELECT  CAST(TRANSLATE(SUBSTR(dt, 0, INSTR(dt, ', ')), 'Week ', '') AS BYTEINT) AS week_num,
                 CAST(SUBSTR(dt, INSTR(dt, ', ') + 2) AS SMALLINT) AS year_num
           FROM  (SELECT  'Week 3, 2017' AS dt
                   UNION  ALL
                  SELECT  'Week 19, 2015' AS dt
                   UNION  ALL
                  SELECT  'Week 45, 2016' AS dt) _) _

【讨论】:

【参考方案2】:

试试这个。

          select to_date(lpad(trim(substring(data.dt,5,100)),8,'0'),'ww, YYYY') + interval '6 days' as lastDayOfWeek

         from  (SELECT  'Week 3, 2017' AS dt
           UNION  ALL
          SELECT  'Week 19, 2015' AS dt
           UNION  ALL
          SELECT  'Week 45, 2016' AS dt) data

【讨论】:

以上是关于从 Aginity 工作台中的周数和年份获取一周的最后一天的主要内容,如果未能解决你的问题,请参考以下文章

如何在Oracle中生成一周的第一天,一周的最后一天和两个日期之间的周数

从 T-SQL 中的周数获取日期

怎么取两个日期之间的周数

如果根据当前日期获取当前周日期和当前周日期

亚马逊 - Redshift:给定日期的周数错误

从T-SQL中的周数中获取日期