2017-10-09 13 views
0

クエリはSQLスクリプトで実行されます。
問題:
モデルのデータをjsonとして渡す必要があります。
それはなぜ私はSQLスクリプトのtimespanに変換する必要があります。intをSQLスクリプトのtimespanに変換する(SQL Server)

--TEMP 
DECLARE @startDate DATETIME 
SET @startDate = '01-09-2016' 

DECLARE @endDate DATETIME 
SET @endDate = '03-10-2017' 
--END 


SELECT 
Firstname, 
Lastname, 
COUNT(Token.Id) as Tokens, 
**CONVERT(time, SUM(DATEDIFF(ss, Token.ArrivalTime, Token.CompletionTime)), 57) as [Time]** 
FROM Employee 
INNER JOIN Token ON Token.Employee_Id = Employee.Id 
WHERE AssignmentTime >= @startDate and AssignmentTime <= @endDate 
and Status = 2 
GROUP BY Firstname, Lastname 
ORDER BY Tokens DESC 
FOR JSON PATH 

エラーは次のとおりです。

The explicit conversion from data type int to time is not allowed 

出力がどのように見えるか:事前に "ハンス"、 "集める"、5、400回の

ありがとう!

+0

親切シェアサンプルデータとでフォーマットされたテキスト内の所望の出力(非画像) – zarruq

+0

:コントローラに渡されつつあるビューモデルにおいて

DATEDIFF(ss, Token.ArrivalTime, Token.CompletionTime) as TimeInSeconds 

は、私はそれを解析します非標準SQL。どのDBMS製品を使用していますか? (T-SQL/SQL Serverのように見えます) –

+0

そのSQL Server。申し訳ありませんが、私はSQLに使用されていません。 – eDonkey

答えて

1

最後はそれほど難しくありませんでした。私はSQLクエリのtimespanにintを解析しませんでした。私は何を試しても、すべてのバリエーションでエラーが発生しました。私の溶液厥 :

public int TimeInSeconds { get; set; } 
    public TimeSpan Time 
    { 
     get { return TimeSpan.FromSeconds(TimeInSeconds); } 
    } 
1

問題はSUM機能によるものです。あなたは時間を合計することを試みているからです。 DATEADD関数を使用する必要があります。 13:50から21:45の間に合計を試してみると、これはうまくいくと思う。

関連する問題