T-SQL Azure流分析四舍五入到分钟

时间:2015-07-13 15:12:24

标签: sql sql-server datetime azure azure-stream-analytics

我在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改为什么。

1 个答案:

答案 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'