我正在尝试范围连接两个表,如下所示
SELECT *
FROM main_table h
INNER JOIN
    test.delay_pairs d
ON
    d.interval_start_time_utc < h.visitStartTime
    AND h.visitStartTime < d.interval_end_time_utc其中h.visitStartTime是INT64时期,d.interval_start_time_utc和d.interval_end_time_utc是适当的TIMESTAMP。
以上操作失败,并显示以下内容
No matching signature for operator < for argument types: TIMESTAMP, INT64. Supported signature: ANY < ANY在TIMESTAMP()和CAST(d.interval_start_time_utc AS INT64)中包装h.visitStartTime都不起作用。如何在BigQuery的标准SQL方言中使这两种语言具有可比性?
发布于 2016-06-16 23:43:29
你可以使用像TIMESTAMP_SECONDS,TIMESTAMP_MILLIS,TIMESTAMP_MICROS这样的timestamp conversion functions
例如,假设您的h.visitStartTime是从unix时代开始的微秒数。
SELECT *
FROM main_table h
INNER JOIN test.delay_pairs d
ON d.interval_start_time_utc < TIMESTAMP_MICROS(h.visitStartTime)
AND TIMESTAMP_MICROS(h.visitStartTime) < d.interval_end_time_utc  https://stackoverflow.com/questions/37861500
复制相似问题