2016-03-23 58 views
1

與時間跨度的工作假設我有以下表和數據庫:以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在正確的 「時間跨度」 格式被輸出(例如, 「:00:00 00.0123」)。

但是,如果我嘗試對該列執行計算(例如AVG/MAX /等​​),則會出現錯誤,指出TimeSpan不能用作列類型。

回答

1

TimeSpan不是支持的內置類型。 TimeSpan基本上是一個很長的時間,所以你可以將它轉換成一個很長的時間,然後執行你的操作,最後再投入。

未來我們將增加對用戶定義類型的支持。在這種情況下,您可以將其包裝到UDT中,也可以實現您需要提供的序列化接口。

如果您希望我們添加TimeSpan作爲內置類型,請在http://aka.ms/adlfeedback上提出請求。

+0

https://feedback.azure.com/forums/327234-data-lake/suggestions/13123272-support-columns-of-type-timespan – SaguiItay

+0

我加了這個建議。使用UDT對我來說可能會有問題,因爲我使用不同查詢語言的代碼生成USQL語句,使事情變得複雜,並且使轉換幾乎不可能。 – SaguiItay

+0

感謝您提交反饋項目! –

相關問題