我在Azure Stream Analytics Query中有以下SELECT子句:
SELECT DateAdd(mi, DateDiff(mi, 0, DateAdd(s, 30, Max(timecreated))), 0) as 'timestamp'
出现以下错误:
' DateDiff'的第二个参数in expression' DateDiff(mi,0,DateAdd(s,30,Max(timecreated)))'有无效的类型' bigint'。 '日期时间'是预期的。
不可否认,我使用的代码是从StackOverflow上的几个类似线程中复制的,例如T-SQL datetime rounded to nearest minute and nearest hours with using functions,但我不知道在我的场景中将0改为什么。
答案 0 :(得分:3)
它应该从bigint自动转换为0到datetime,但是Azure版本的T-SQL可能存在一些怪癖。相反,使用:
SELECT DATEADD(mi,
DATEDIFF(mi, CAST('1900-01-01 00:00:00.000' AS DateTime),
DATEADD(s, 30, MAX(timecreated))),
CAST('1900-01-01 00:00:00.000' AS DateTime)) as 'timestamp'