我的 Azure 流分析查询中有以下 SELECT 子句:
SELECT DateAdd(mi, DateDiff(mi, 0, DateAdd(s, 30, Max(timecreated))), 0) 作为“时间戳”
出现以下错误:
Second parameter of 'DateDiff' in expression 'DateDiff ( mi , 0 , DateAdd(s, 30, Max ( timecreated ) ) )' has invalid type 'bigint'. 'datetime' is expected.
诚然,我使用的代码是从 StackOverflow 上的几个类似线程复制的,例如 T-SQL datetime rounded to nearest minute and nearest hours with using functions ,但我不知道在我的场景中将 0 更改为什么。
最佳答案
它应该自动将 0 从 bigint 转换为 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'
关于sql - T-SQL Azure 流分析四舍五入到分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31387105/