0

クエリを使用して、第 3 シフトの従業員向けのレポートを取得しています。

レポートが 0 件の結果とともにメールで送信されたときに気付いた問題は、現在、レポートを午後 6 時から翌朝の午前 5 時 59 分まで実行するように設定していることです。日付フィールド = the があるためGETDATE、前夜 (1800-2359) の結果は表示されません。これを-12時間程度から引っ張るだけだと思っていましたが、いつでもボタンを押して結果を見ることができます.

そのため、シフトが終了する前にプッシュすると、最初のシフトのエントリの一部が表示されます。ボタンが真夜中前または真夜中後に押されたかどうかに関係なく、翌朝 1800-0559 からのみ実行するようにします。これが理にかなっていることを願っています。2359 に達した後、その間が 00 になることを認識するかどうかさえわかりません。私はこれを VB.net アプリケーションに組み込んでおり、いつでも結果を取得したいときにボタンを押すことができます。これは、問題が発生したときに従業員がリアルタイムでデータを入力する必要があるため、経営陣が何が行われているかを追跡するためのものです。

助けてくれてありがとう。私が十分に理解できたことを願っています!:D

SELECT 
   Assignment, Datemodified, General, 
   IncNumber, NextSteps, PDCRStatus, 
   RootCause, Status, Summary, 
   Timings, UserID 
FROM 
   Turnover 
WHERE DATEPART(HOUR, datemodified) between 18 and 05 
AND CONVERT(NVARCHAR(50),datemodified,103) = CONVERT(NVARCHAR(50),GETDATE(),103);
4

2 に答える 2

0

特定の時間範囲をチェックしているとき、日付は時間とともに変化していると思います。つまり、1日の1800時間から次の0500時間までです。あなたのクエリは時間のみをチェックしているようですが、日付は考慮されていません。日付と時刻を一緒に確認できれば、うまくいくはずです。今のところ、私のマシンには sql サーバーがありません。それ以外の場合は、サンプル クエリで役に立ちます。

乾杯、それが役立つことを願っています!

于 2012-11-07T13:12:23.117 に答える