假设我有一个包含下表的数据库:
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 / etc,我会收到一条错误消息,指出TimeSpan不能用作列类型。
答案 0 :(得分:2)
TimeSpan不是受支持的内置类型。 TimeSpan基本上是一个很长的,所以你可以将它转换为long然后执行你的操作,最后再将其转换回来。
将来我们将添加对用户定义类型的支持。在这种情况下,您可以将其包装到UDT中或实现您需要提供的序列化接口。
如果您希望我们将TimeSpan添加为内置类型,请在http://aka.ms/adlfeedback提交请求。