代码之家  ›  专栏  ›  技术社区  ›  Sweta

知道bigquery中每月的周数

  •  0
  • Sweta  · 技术社区  · 7 年前

    我想知道bigquery标准sql中日期的月周数。在postgresql中,如果我写,
    选择To\u char(当前日期“YYYY-MM-W”)
    其有效期为2018年4月25日,即2018年4月4日。
    这里2018年是一年,04是一个月,4是一个月的第四周,这一天正好到来。
    我想要bigquery标准sql中的类似内容。 如果我写信
    选择格式\u date(“%Y-%m”,current\u date())
    仅给出2018-04年
    我还想知道每月的周数。 提前谢谢你。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Elliott Brossard    7 年前

    下面是一个解决方案(定义可以在查询中使用的UDF)和一个示例。

    CREATE TEMP FUNCTION DateWithWeekOfMonth(date DATE) AS (
      CONCAT(
        FORMAT_DATE('%Y-%m-', date),
        CAST(DIV(EXTRACT(DAY FROM date), 7) + 1 AS STRING)
      )
    );
    
    SELECT date, DateWithWeekOfMonth(date)
    FROM (
      SELECT DATE '2018-04-01' AS date UNION ALL
      SELECT DATE '2018-04-07' UNION ALL
      SELECT DATE '2018-04-08' UNION ALL
      SELECT DATE '2018-04-30'
    );