在U-SQL中使用TimeSpan

时间:2016-03-23 11:23:06

标签: azure-data-lake u-sql

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

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不能用作列类型。

1 个答案:

答案 0 :(得分:2)

TimeSpan不是受支持的内置类型。 TimeSpan基本上是一个很长的,所以你可以将它转换为long然后执行你的操作,最后再将其转换回来。

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

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