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

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

我的 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/

相关文章:

SQL LEFT JOIN 值不在任一连接列中

sql-server - 将平面文件导入 SQL - 添加字符后不会抛出错误

Perl:给定年份和周数,我如何获得该周的第一个日期?

c# - DateTime 列可为空时 Entity Framework 种子方法 DateTime 错误

sql - 向 SQL 查询的结果添加静态值

sql - 如何在另一个存储过程中使用存储过程的结果?

sql - ROWLOCK on Delete的目的是什么?何时使用?

SQL Server 2005,统计总数

javascript - 查找最近的日期(javascript)

sql - 带有 NodeJS 的 PostgreSQL - 取回行或至少取回 ID