没有选择将int转换为date或使用标准(非传统)转换为int的选项

时间:2018-06-23 08:08:44

标签: google-bigquery

是否存在将INT转换为DATE或将DATE转换为INT进行时间戳过滤的功能?

在Google BigQuery日期类型页面中看不到这种功能。

以下是我对要测试的公共数据集所做的查询:

SELECT title, comment, contributor_username FROM [bigquery-public-data:samples.wikipedia] WHERE wp_namespace = 3 AND timestamp = ??

Image

如所附链接中的图像所示,时间戳列为INT日期类型。

2 个答案:

答案 0 :(得分:2)

我怀疑您希望UNIX_SECONDS将时间戳转换为自Unix纪元以来的秒数,TIMESTAMP_SECONDS将Unix纪元以来的秒数转换为TIMESTAMP

(我猜想自Unix时代以来,您获得的整数值是 几秒钟。如果显示的值表示一个整数,它将适用于您显示的值时间戳记)。

这里有一个示例显示了2007年3月以来的10个贡献:

SELECT title, comment, contributor_username, TIMESTAMP_SECONDS(timestamp) AS timestamp
FROM `bigquery-public-data.samples.wikipedia`
WHERE
  wp_namespace = 3
  AND timestamp >= UNIX_SECONDS('2007-03-01T00:00:00Z')
  AND timestamp < UNIX_SECONDS('2007-04-01T00:00:00Z')
LIMIT 10

答案 1 :(得分:0)

对于Unix时间(在您的示例中),请使用Daisy的答案。 但是,在其他情况下,如果您希望DATE(2018,01,01)20180101(整数),则可以使用CAST(FORMAT_DATE("%Y%m%d", date) AS INT64)。 对于TIMESTAMP,请使用FORMAT_TIMESTAMP