如何在 Google BigQuery 中将日期解析为周年?

2023-12-21

我需要选择两组数据 - 一组来自上周,一组来自去年同一周。

我看到这个工作的方式是提取周数,所以

SELECT EXTRACT(WEEK FROM DATE_FIELD)

然后我根据上周一得到去年的年份值,就像这样

SELECT DATE_SUB(
                DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY), WEEK(MONDAY)), 
               INTERVAL 1 YEAR)

我已设法将这些值连接在一起,以便它们表示 %Y-%W 格式的日期。例如。2019-03

然而,使用PARSE_DATE()函数似乎不适用于解析 BigQuery 中的年周。我尝试了多种静态字符串的组合,例如:

SELECT PARSE_DATE("%Y-%W", '2020-53'),
       PARSE_DATE("%Y-%W", '2019-01'),
       PARSE_DATE("%Y-%W", '2018-00')

无论输入如何,日期始终显示为指定年份的 1 月 1 日

Row f0_ f1_ f2_ 
1   
2020-01-01
2019-01-01
2018-01-01

我究竟做错了什么?


关于如何使用以下格式在 BigQuery 中传递日期的问题年周,我建议你使用该功能格式_日期() https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#format_date.

该函数使用两个参数。第一个必须是STRING,使用此参数您可以选择日期的显示方式。您可以关注这本词典 https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#supported_format_elements_for_date帮助您选择最适合您的一款。在你的情况下,我会使用“%Y-%W”或“%Y-%V”。根据文档:

%V:ISO 8601 一年中的周数(星期一为第一天) 周)作为十进制数 (01-53)。如果包含一月的那周 1 新的一年有四天或四天以上,则为第一周;否则 这是上一年的第 53 周,下一周是第 1 周。

%W:一年中的周数(星期一为一周的第一天) 作为十进制数 (00-53)。

第二个参数必须位于DATE format.

下面是带有虚拟数据的语法示例:

with a as (
select '2019-01-01' as date union all 
select '2020-10-21' as date union all
select '2018-08-15' as date 
order by date
)
select  format_date("%Y-%W", cast(date as date)) as date_w,
        format_date("%Y-%V", cast(date as date)) as date_v 
from a

请注意,我使用了CAST() https://cloud.google.com/bigquery/docs/reference/standard-sql/conversion_rules函数将字符串转换为日期格式。输出为:

我希望它有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Google BigQuery 中将日期解析为周年? 的相关文章

  • BigQuery Crashlytics - 无崩溃的用户/会话

    我已将 firebase crashlytics 数据链接到 bigquery 并设置 google 提供的数据工作室模板 除了我的仪表板所需的最重要的指标之外 还有很多重要的数据 无崩溃用户 and 无崩溃会话以百分比表示 在我可以用来计
  • 使用 Airflow BigqueryOperator 向 BigQuery 表添加标签

    我必须向 bigquery 表添加标签 我知道可以通过 BigQuery UI 来完成此操作 但如何通过气流运算符来完成此操作 Use case 用于计费和搜索目的 由于多个团队在同一项目和数据集下工作 我们需要将各个团队创建的所有表组合在
  • 如何在 BigQuery 中取消透视?

    不确定要调用什么函数 但转置是我能想到的最接近的函数 I have a table in BigQuery that is configured like this 但我想查询一个配置如下的表 创建此表的 SQL 代码是什么样的 Thank
  • 如何从 firebase 导出无崩溃的用户?

    我想将有关崩溃和无崩溃用户指标的数据保留在数据库中以供进一步分析 我已经将该项目链接到 BigQuery 但找不到计算方法无崩溃用户BigQuery 中包含的数据价值 是否可以以某种方式导出无崩溃的用户指标 这里是 Fabric Fireb
  • Google BigQuery 另存为表

    我用 Google BigQuery 运行了这个查询 SELECT repo id count as count FROM TABLE DATE RANGE githubarchive day events TIMESTAMP 2015 0
  • 如何使用第二行中的值填充第一行中的空值?

    我正在尝试编写一个查询 仅显示每个名称的第一行 但这些行的标题为空 因此我想从紧邻的下一行中提取它们的标题 table1 Name Title Row Dan NULL 1 Dan Engineer 2 Dan Developer 3 Ja
  • Bigquery 中数组对之间的余弦相似度

    我创建了一个表 其中有一对 ID 和每个 ID 的坐标 以便我可以计算它们之间的成对余弦相似度 The table looks like this 坐标的维度数当前为 128 但可能会有所不同 但同一个表中一对 ID 的数字维度始终相同 c
  • Bigquery - 选择时间戳作为人类可读的日期时间

    如何在 Google Bigquery 中选择时间戳 存储为秒 作为人类可读的日期时间 schema id STRING signup date TIMESTAMP 我使用编写了一个查询DATE功能 但出现错误 SELECT DATE cr
  • 将大型 CSV 加载到 Google BigQuery 时出错

    将大型 CSV 加载到 bigquery 时出现错误 我在网上阅读的所有地方都发现压缩文件有 5GB 大小限制 但 CSV 没有限制 加载操作中的 BigQuery 错误 处理作业 bqjob r3016bbfad3037f 0000015
  • Google BigQuery,使用“unnest”函数时丢失了空行

    StandardSQL WITH tableA AS SELECT T001 T002 T003 AS T id 1 5 AS L id UNION ALL SELECT T008 T009 AS T id NULL AS L id SEL
  • 如何解密 BigQuery 中的列?

    我在 BigQuery 中有一些加密列 我想使用 BigQuery 函数对其进行解密 用于加密它们的机制是 AES 256 使用的向量以 UTF8 编码 生成的数据采用 Base64 加密 我想要做的是使用函数解密 BigQuery 中传递
  • Firebase 中的每用户会话分布表

    这是第二篇文章 我的后续文章第一篇文章 https stackoverflow com questions 48670590 session duration distribution table in firebase 查看 Fireba
  • Google BigQuery DML 更新仍在流缓冲区中的行的查询

    我最近一直在尝试为 Google 的 Big Query 流 api 提出一种重试机制 用于使用 UPDATE 语句对有时仍位于流缓冲区中的行运行 DML 查询 由于这些行尚未导出到表中 BI 的 api 禁止对它们运行 UPDATE 或
  • 从字符串到日期的日期格式

    我正在使用上传的 csv 进行日期格式化 其中日期是具有以下格式的字符串 10 30 2021 8 41 PM 我试图在谷歌大查询中将其更改为 mm dd yyyy 但不断收到错误消息 提示 无效日期 或 无效日期时间 我尝试过使用子字符串
  • 有没有办法确定或指定 BigQuery 将数据存储在哪个地理区域?

    有没有办法确定哪个区域 像这些 https cloud google com compute docs zones available BigQuery 将我的数据存储在 更重要的是 有没有办法指定我的数据发送到 BigQuery 时的存储
  • BigQuery:通配文件模式时遇到错误

    我查询了包含 Google 电子表格中数据的联合表 遵循第 720 期中的建议https code google com p google bigquery issues detail id 720 https code google co
  • Google BigQuery 与 PHP 集成

    我需要帮助将 google bigquery 代码集成到 PHP 中 所以我可以从 php 代码本身执行查询和其他类型的操作 需要您的帮助并建议我一些工作示例链接 提前致谢 这是一段代码 正确地创建一个Google Client using
  • 比较 BigQuery 中的表

    我如何比较两个表 Table1 and Table2 并查找所有新条目或更改Table2 使用 SQL Server 我可以使用 Select from Table1 Except Select from Table2 这是我想要的示例 T
  • BigQuery:从带有时区的日期时间中提取日期

    我正在尝试返回 BigQuery 中的一列以及从该列中提取的日期开始时间 该列中的值的格式为 11 27 2019 14 40 15 CET 0100 我写了以下代码 SELECT EXTRACT DATE FROM TIMESTAMP s
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h

随机推荐