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

BigQuery从日期字段提取星期作为日期范围

  •  0
  • Avishay28  · 技术社区  · 4 年前

    我想从 DATETIME bigquery中的字段。 从…起 these docs 我可以像这样提取周数 EXTRACT(WEEK FROM date) ,或者像这样把第一天定为约会日 DATE_TRUNC(DATE(date), WEEK)

    但是如果我想得到一个日期范围,例如如果日期字段有 2021-12-23 04:30:00 假设周日是一周的第一天,我想得到这个结果 2021-12-19 - 2021-12-25 或者类似的东西。可能吗?

    0 回复  |  直到 4 年前
        1
  •  1
  •   Daniel Zagales    4 年前

    根据所需的输出、单独的列或单个字符串,您可以尝试以下操作:

    with sample_data as (
        SELECT date FROM UNNEST(generate_timestamp_array('2021-12-01 00:00:00', '2022-02-01 00:00:00', INTERVAL 1 DAY)) as date
    )
    
    select
        date
        , DATE_TRUNC(DATE(date), WEEK) week_start
        , DATE_TRUNC(DATE(date), WEEK) +6 week_end
        , LAST_DAY(DATE(date), WEEK) as alt_week_end
        , concat(DATE_TRUNC(DATE(date), WEEK)," - ", DATE_TRUNC(DATE(date), WEEK) +6) week_range
    from sample_data 
    
        2
  •  0
  •   Mikhail Berlyant    4 年前

    考虑下面的方法

    select *, 
      date_trunc(date(date), week) week_start,
      last_day(date(date), week) week_end
    from your_table    
    

    输出类似

    enter image description here