2017-01-05 9 views
-1

タイムキャプチャテーブルには、各ユーザーのタイムスタンプを収集するための次の列があります。更新前の-ve値のSQL Serverのチェック

Entered 
Exited 

次のクエリ

select entered, exited as ORIGINALEXIT, DATEDIFF(second, entered, exited), 
DATEADD(ss, -40, exited) AS AFTERCALC, 
DATEDIFF(SECOND,entered, DATEADD(ss, -40, exited)) as AftercalcSeconds 
from <table> where deptName = 'Research' 

出力を使用して以下の通りである:

|Entered------------------|Exited-------------------|(NO)|AFTERCALC-----------------|AftercalcSeconds| 
|2016-12-14 11:14:15.000 | 2016-12-14 11:14:16.000 | 1 | 2016-12-14 11:13:36.000 | -39   | 
|2016-12-14 11:14:30.000 | 2016-12-14 11:14:32.000 | 2 | 2016-12-14 11:13:52.000 | -38   | 
|2016-12-14 11:14:05.000 | 2016-12-14 11:14:43.000 | 38 | 2016-12-14 11:14:03.000 | -2    | 

期待:

私たちは、 "AfterCalcSecondsが" 落ちるかどうかを確認することができ、クエリを必要とします-ve値に収まっていれば、それをスキップして元の値を保持する必要があります。そうでない場合は、結果を "AfterCalcSeconds"に保存する必要があります。

ありがとうございます!

+0

要件が不明であるため、例とともに説明し、期待される出力を表示してください – TheGameiswar

+0

あなたの質問を書き直すためのネイティブ英語スピーカーがありますか?あなたが何を求めようとしているのか分かりません。 –

+0

あなたはそれがすべてであれば、どのようにして助けを得たいと思いますか?もう少し情報を与えてください。入力は何ですか?期待される結果は何ですか? 'DATEADD'と' DATEDIFF'はどこで呼びますか?あなたはそれらの機能にどのようなパラメータを入れますか? – Eric

答えて

0

「AftercalcSeconds」列が負の値を持っているかどうかを確認するために、私は

CASE WHEN 
    DATEDIFF(SECOND, entered, exited) < 0 
THEN 
    //condition 
ELSE 
    //else condition 
END 

DateDiff関数機能を使用しサポートしていただきありがとうございます!

関連する問題