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

将小时提取转换为Bigquery standardSQL

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

    date_part(hour, convert_timezone('UTC', 'US/Eastern', to_timestamp(to_numeric((FLOOR(start_ts)))))) in (6,7,8,9)
    

    起始\u ts的格式为:1563026408.17193

    1 回复  |  直到 7 年前
        1
  •  1
  •   Gordon Linoff    7 年前

    你可以用 TIMESTAMP_MILLIS() 将值转换为时间戳。然后转换为 DATETIME

    select DATETIME(timestamp_MICROS(cast(1563026408.17193 * 1000000 as int64)), 'America/New_York')
    

    而不是 datepart() ,使用 extract(hour . . .)

        2
  •  1
  •   Mikhail Berlyant    6 年前

    BigQuery标准SQL的等效表达式为

    EXTRACT(HOUR FROM DATETIME(TIMESTAMP_MICROS(CAST(1000000 * start_ts AS INT64)), 'US/Eastern')) IN (6,7,8,9)