【问题标题】:Know the week number of a month in bigquery在 bigquery 中了解一个月的周数
【发布时间】:2018-04-25 09:09:19
【问题描述】:

我想知道 bigquery 标准 sql 中某个日期的一个月的周数。如果我在 postgresql 中写,
选择 To_char(current_date, 'YYYY-MM-W')
它适用于日期“25-04-2018”,如 2018-04-4。
这里 2018 是年份,04 是月份,4 是该月的第四周。
我想在 bigquery 标准 sql 中有类似的东西。 如果我写
select format_date("%Y-%m",current_date())
它只提供 2018-04
我也想知道月份的周数。 提前谢谢你。

【问题讨论】:

  • 如果一个月的第二天是星期日,那是星期几?目前尚不清楚您希望如何计算周数,例如如果第一个月到第七个月是第 1 周,或者它是否由周界决定。
  • 如果一个月的第二天是星期天,它仍然是在第 1 周。第 1 到第 7 天在第 1 周下,第 8 到第 14 周在第 2 周下,依此类推。

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


【解决方案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'
);

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    相关资源
    最近更新 更多