2016-09-02 8 views
0

ログイン時間とログアウト時間の時間差と時間差を取得するにはどうすればよいですか?ログインとログアウトの時間差を取得するには

私は、以下のクエリを使用:

select LoginDateTime,LogoutDateTime from Fleet_DriverQueueList 

私は以下の私のデータのスクリーンショットを添付しています。

enter image description here

+0

を試し、DATEDIFF関数を使用することができます上記の結果セットを取得するために使用したクエリ? –

+0

'LogoutDateTime'が' NULL'の場合に期待する出力は? 'LogDateTime'値が' NULL'の場合、 'LoginDateTime'から固定時間を追加したいということですか? – Arulkumar

+0

上記の情報は単一のユーザーですか? – p2k

答えて

1

次のことを試してみてください。

SELECT ISNULL(DATEDIFF(HOUR, LoginDateTime, LogoutDateTime), 1) FROM Table 
1

ただ、DATEDIFF関数を使用します。分あるいは秒と

SELECT 
    DATEDIFF(HOUR,[LoginDateTime],[LogoutDateTime]) 
FROM 
    YourTable 
0

より良い使用DATEDIFFそれがより正確になります:このよう

select DATEDIFF(minute,LoginDateTime,COALESCE(LogoutDateTime,GETDATE()))/60.00, 
     CASE WHEN LogoutDateTime IS NULL THEN 'Active' ELSE 'Not Active' END [Status] 
from Fleet_DriverQueueList 

select DATEDIFF(second,LoginDateTime,COALESCE(LogoutDateTime,GETDATE()))/3600.00, 
     CASE WHEN LogoutDateTime IS NULL THEN 'Active' ELSE 'Not Active' END [Status] 
from Fleet_DriverQueueList 

select DATEDIFF(hour,LoginDateTime,COALESCE(LogoutDateTime,GETDATE()))/3600.00, 
     CASE WHEN LogoutDateTime IS NULL THEN 'Active' ELSE 'Not Active' END [Status] 
from Fleet_DriverQueueList 
+0

私の答えをチェックしてください。あなたが答えを見つけたなら、upvote/acceptを自由にしてください。 – gofr1

0

あなたが含まれてくださいすることができ、この

Select Case when isnull(LogoutDateTime,'')='' then 'Active' else 'Not Active' end as Status, 
Case when isnull(LogoutDateTime,'')='' 
    then DATEDIFF(HH,LoginDateTime,getdate()) 
    else DATEDIFF(HH,LoginDateTime,LogoutDateTime) end as Period 
from Fleet_DriverQueueList 
+0

ドライバのアクティブgetdate()を表示し、Hour of Hours –

+0

を表示する方法を教えてください。もう一度確認してください – Munavvar

関連する問題