是否存在将INT转换为DATE或将DATE转换为INT进行时间戳过滤的功能?
在Google BigQuery日期类型页面中看不到这种功能。
以下是我对要测试的公共数据集所做的查询:
SELECT title, comment, contributor_username FROM [bigquery-public-data:samples.wikipedia] WHERE wp_namespace = 3 AND timestamp = ??
如所附链接中的图像所示,时间戳列为INT日期类型。
答案 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