知道bigquery中一个月的周数

时间:2018-04-25 09:09:20

标签: google-bigquery week-number standard-sql

我想知道bigquery标准sql中一个月的星期数。如果我写的话,在postgresql中,
选择To_char(current_date,' YYYY-MM-W')
它适用于日期' 25-04-2018'如2018-04-4 这里是2018年,04是月份,4是本月的第4个星期 我想在bigquery标准sql中使用类似的东西。 如果我写了 选择format_date("%Y-%m",current_date())
它只给出2018-04
我也想知道一周的月份数。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

以下是解决方案(定义可在查询中使用的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'
);