Знать номер недели месяца в bigquery - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу знать номер недели месяца для даты в стандарте bigquery sql. В postgresql, если я пишу,
выберите To_char (current_date, 'YYYY-MM-W')
Это работает длядата '25 -04-2018 'как 2018-04-4.
Здесь 2018 - это год, 04 - месяц, а 4 - четвертая неделя месяца, на которую выпадает дата.
Я хочу что-то подобноев BigQuery стандарт sql.Если я пишу
, выберите format_date ("% Y-% m", current_date ())
Это дает только 2018-04
Я также хочу знать номер недели месяца.Заранее спасибо.

1 Ответ

0 голосов
/ 25 апреля 2018

Вот решение (определение 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'
);
...