2017-09-06 18 views
1

私は接続プロセスを監視するクエリを持っています。今、私は立ち往生しており、平日と時間帯の適切な監視を設定する必要があります。SQLは平日と平日の間にありません

日曜日の22:00からプロセスが開始され、5分間停止します。 21:55 - 毎日〜金曜日。

IF CASE 
     WHEN (100 * DATEPART(hh, GETDATE())) 
       + DATEPART(MINUTE, GETDATE()) 
      BETWEEN 2155 AND 2200 -- Monitoring for whole day, wen connection is up 
      AND DATEPART(dw,GETDATE()), (100 * DATEPART(hh, GETDATE())) 
      + DATEPART(MINUTE, GETDATE()) 
      NOT BETWEEN (5, 2155) AND (0, 2200) --except trough Friday night to Sunday (weekdays and time). 

     THEN 1 ELSE 0 END = 0 

答えて

0

をあなたは例の部分にいくつかのSELECT文を追加する必要が:(日曜午前22時まで、金曜日午前21時55分から上がっていない)以下

は、私が試したSQLクエリです値の範囲を指定していました。これを試してみてください:

SELECT 
    CASE 
     WHEN(100 * DATEPART(hh, GETDATE())) + DATEPART(MINUTE, GETDATE()) -- = 731 
      BETWEEN 2155 AND 2200 -- Monitoring for whole day, wen connection is up 
      AND (
       (
        SELECT 
         DATEPART(dw, GETDATE()) 
       ) NOT BETWEEN(5) AND(0) 
       AND 
       (
        SELECT 
         (100 * DATEPART(hh, GETDATE())) + DATEPART(MINUTE, GETDATE()) 
       ) NOT BETWEEN(2155) AND(2200) 
       ) 
      THEN 1 
      ELSE 0 
     END; 

最初の計算は731に等しいので、クエリを見て、私は返すように、それを除く外だろう「0」それがないている