2017-06-15 55 views
0

私の大学のオンラインビデオゲームプロジェクトのトリガーを作成していますが、このトリガーは8時間のゲーム後に広告を掲載するためのものでした(トリガーにDBMS出力私は推測する)。2つの日付間の時間間隔を選択するSQL Oracle 11g

しかし、私はトラブルを抱えているが、この違いを計算します。

例えば、私が得た:私はLOGINDATE-LOGOUTDATEからそれを差し引く時間の総量を利用したいと思いトリガーで

LOGINDATE    LOGOUTDATE 
-------------------- -------------------- 
15-MAG-2017 23:15:42 16-MAG-2017 02:15:54 

を、そしてそれをIF STATEMENT(たとえば、MAX_HOURS> 8の場合)に変えるMAX_HOURSに保存する

これを実行する方法はありますか?

+1

なぜ計算に問題がありますか?現在何をしていますか、何が問題なのですか?あなたが8時間以上ログインしているとログアウトしたときに何かを見せていますか?) –

答えて

2

例:日付減算の

select (LOGOUTDATE - LOGINDATE)*24 
INTO MAX_HOURS 
     from your_table; 

結果は日の単位です。単位時間を得るために24時間に掛けてください。

+0

ああ、私の神様、それは魅力のように働いていました!私はこのコメントをUPしたいですが、私はまだそれを行う評判を持っていない! 大変ありがとうございますが、私は2つの質問があります:このhour_diffの仕組みは?それについて聞いたことはありません。 2番目の質問:このクエリの結果を丸める方法はありますか? (例:3,00333から3) – Asynchronousx

+0

はい、#days全体ではない2つの日付フィールドを減算すると、結果にも小数が含まれます。 oracle ROUND関数を使用できます。このチュートリアルを参照してください。https://www.akadia.com/services/ora_date_time.html – OldProgrammer

+2

@Asynchronousx - 必要に応じて[回答を受け入れる](https://stackoverflow.com/help/someone-answers)たとえあなたがまだ投票に上がることができなくても。 –

関連する問題