一切都在截图中: 我有一个包含格式为
%Y%W
的日期字符串的列。我想获取相应周的星期日的日期(例如。202201
返回2022-01-09
)
PARSE_DATE
函数无法正确解析数据,它只是正确返回年份,但不解析周数
来自医生:
格式字符串完全支持除%a之外的大多数格式元素, %A、%g、%G、%j、%u、%U、%V、%w 和 %W
那么如何解决这个问题呢?
数据样本:
week_year
202204
202208
202203
202205
202202
202207
202206
这个问题相关,但没有提供问题的答案
丑陋但有效的解决方案(灵感来自this):
DATE_SUB( DATE_ADD(DATE_TRUNC(PARSE_DATE('%Y%m%d',
CONCAT(SUBSTR(week_year, 1, 4), '0601')), isoyear ), INTERVAL CAST(SUBSTR(week_year, -2) AS int64) WEEK), INTERVAL 1 day),
这是有效的: 选择 PARSE_DATE('%g %V %u', '19 46 1')
它将为您提供 2019 年第 46 周的星期一 (1)