4

我的 Azure 流分析查询中有以下 SELECT 子句:

SELECT DateAdd(mi, DateDiff(mi, 0, DateAdd(s, 30, Max(timecreated))), 0) as 'timestamp'

这给出了以下错误:

表达式 'DateDiff ( mi , 0 , DateAdd(s, 30, Max ( timecreated ) ) )' 中 'DateDiff' 的第二个参数具有无效类型 'bigint'。'日期时间' 是预期的。

诚然,我正在使用的代码是从 StackOverflow 上的几个类似线程复制的,例如T-SQL 日期时间使用函数四舍五入到最接近的分钟和最接近的小时,但我不知道在我的场景中将 0 更改为什么。

4

1 回答 1

3

它应该自动将 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'
于 2015-07-13T15:19:18.903 回答