Ave*_*Tom 2 sql google-bigquery
我需要从 ISO 周数中提取星期日的日期:即 201905 它需要位于 #standardSQL 中,因为它将使用不支持旧版的脚本进行安排。
我尝试从 Google Sheets 调整工作公式,但无法弄清楚。Google Sheets 的原始公式:
TO_TEXT (
(DATE(LEFT(Week_ISO,4),1,1)
- (WEEKDAY(DATE(LEFT(Week_ISO,4),1,1))-2)
+ (RIGHT(Week_ISO,2)-1)*7)
+6)
Run Code Online (Sandbox Code Playgroud)
根据我对文档的阅读,这应该有效:
PARSE_DATE('%G%V', isoyyyymm)
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。
所以,这是一个替代方案:
SELECT DATE_ADD(DATE_TRUNC(PARSE_DATE('%Y%m%d', CONCAT(substr(isoyyyyww, 1, 4), '0601')),
isoyear
),
INTERVAL CAST(substr(isoyyyyww, -2) as int64) WEEK
)
FROM (SELECT '200506' as isoyyyyww);
Run Code Online (Sandbox Code Playgroud)
这里的想法如下:
如果您的值是数字而不是字符串,则可以调整此设置。