1

假设我有一个包含下表的数据库:

CREATE TABLE Table1 (
    start DateTime,
    end DateTime,
    activityId Guid,
    level string,
    INDEX Table1 CLUSTERED(start ASC) PARTITIONED BY HASH(level)
);

我想获得每个活动的持续时间,所以我尝试运行以下代码:

@result = SELECT activityId, level, (end - start) AS duration
          FROM Table;

该列duration以正确的“TimeSpan”格式输出(例如“00:00:00.0123”)。

但是,如果我尝试对这些列执行计算,例如 AVG/MAX/等,我会收到一条错误消息,指出 TimeSpan 不能用作列类型。

4

1 回答 1

2

TimeSpan 不是受支持的内置类型。TimeSpan 基本上是一个 long,因此您可以将其转换为 long,然后执行您的操作,最后将其转换回。

将来,我们将添加对用户定义类型的支持。在这种情况下,您可以将其包装到 UDT 中或实现您需要提供的序列化接口。

如果您希望我们将 TimeSpan 添加为内置类型,请在http://aka.ms/adlfeedback提出请求。

于 2016-03-23T19:51:07.140 回答