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/etc などのその列で計算を実行しようとすると、TimeSpan を列の型として使用できないというエラーが表示されます。

4

1 に答える 1

2

TimeSpan はサポートされている組み込み型ではありません。TimeSpan は基本的に long であるため、long に変換して操作を実行し、最後にキャストして戻すことができます。

将来的には、ユーザー定義型のサポートを追加する予定です。その場合、それを UDT にラップするか、提供する必要があるシリアライゼーション インターフェイスを実装することができます。

TimeSpan を組み込み型として追加することを希望する場合は、http://aka.ms/adlfeedbackで要求を提出してください。

于 2016-03-23T19:51:07.140 に答える