Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 在bigquery中使用带有时间戳的date_add函数会导致输出为null_Google Bigquery - Fatal编程技术网

Google bigquery 在bigquery中使用带有时间戳的date_add函数会导致输出为null

Google bigquery 在bigquery中使用带有时间戳的date_add函数会导致输出为null,google-bigquery,Google Bigquery,我试图在bigquery中使用带有时间戳的date_add函数,但输出结果是“null”。我以前成功地使用了date_add,所以我不明白问题出在哪里。这里有一些代码 SELECT userId, MAX(most_recent_session) most_recent_session, date_add(MAX(most_recent_session), 24, 'HOUR') as added_a_day, FROM ( SELECT userId, LAG(time, 0) OVER (

我试图在bigquery中使用带有时间戳的date_add函数,但输出结果是“null”。我以前成功地使用了date_add,所以我不明白问题出在哪里。这里有一些代码

SELECT 
userId,
MAX(most_recent_session) most_recent_session,
date_add(MAX(most_recent_session), 24, 'HOUR') as added_a_day,
FROM
(
SELECT
userId,
LAG(time, 0) OVER (PARTITION BY userId ORDER BY time) as most_recent_session,
LAG(time, 1) OVER (PARTITION BY userId ORDER BY time) as previous_session,
FROM     TABLE_DATE_RANGE(dataset.tablename_, TIMESTAMP(DATE_ADD(CURRENT_TIMESTAMP(), -30, "DAY")), CURRENT_TIMESTAMP())

GROUP BY
userId,
time
)
)
group by
userID
所以我希望得到的是三列,第一列包含userId,第二列包含用户最近会话的时间戳,第三列添加了24小时。但在第三列中,我得到的不是第二列中加上24小时的值,而是“null”


有什么想法吗?

我想出了这个问题的解决办法。您需要包装存在于SQL外部级别的“最新会话”,并使用USEC-to-TIMESTAMP函数。这让我感到奇怪,因为BQ将字段识别为一个时间戳,但它是有效的。

我也有同样的问题。看起来DATE_ADD在参数方面有一些奇怪的问题。工作:DATE_ADD(CURRENT_TIMESTAMP(),1,'HOUR')Null:DATE_ADD(NOW(),1,'HOUR')读取看起来向后的文档。