在BigQuery中生成一列随机日期

时间:2019-11-17 23:36:54

标签: google-bigquery

我该如何使用bigquery创建一个随机选择日期的新列?这与this question密切相关,但是日期应该是随机的,并且不能包含任何内容。理想情况下,它只是一列ID和一列给定范围内的随机日期:

ID    Date
1     2010-01-01
2     2012-03-31
3     2011-07-11
4     2015-06-09

这是easier on regular sql,但我无法使用这种方法来处理bigquery sql语法。

1 个答案:

答案 0 :(得分:2)

以下是用于BigQuery标准SQL

#standardSQL
WITH parameters AS (
  SELECT 100 ids_count, DATE '2010-01-01' start_date, DATE '2020-12-31' finish_date
)
SELECT id, DATE_FROM_UNIX_DATE(CAST(start + (finish - start) * RAND() AS INT64)) random_date
FROM parameters, 
UNNEST(GENERATE_ARRAY(1, ids_count)) id,
UNNEST([STRUCT(UNIX_DATE(start_date) AS start, UNIX_DATE(finish_date) AS finish)])
-- ORDER BY id