2012-08-27 32 views
7

如何在實體框架中使用BETWEEN關鍵字?如何在實體框架中使用BETWEEN關鍵字?

這是我的SQL查詢

SELECT * 
    FROM [HRM].[dbo].[meals] 
    WHERE SHIFTCODE = 'Normal' 
    AND 12.59 BETWEEN [STAR TIME] AND [STAR TIME]+DURATION/10; 

這是我的實體框架代碼。

HRMEntities HRM = new HRMEntities(); 
      meal ml = HRM.meals.SingleOrDefault(p => p.SHIFTCODE == "Normal"); 

值12.59可以是一個變量

回答

12

您可以使用>=<=DateTime得到一個範圍。

HRMEntities HRM = new HRMEntities(); 
meal ml = HRM.meals.SingleOrDefault(p => p.SHIFTCODE == "Normal" 
            && p.StartTime <= yourTime 
            && (p.StartTime + duration) >= yourtime); 
+1

不應該檢查倒置? p.StartTime <= yourTime &&(p.StartTime + duration)> = yourtime); ? –

+0

@ YngveB.Nilsen,yup,在輸入答案時混合它 – Habib

+0

謝謝大家和另一件事,基本上StartTime被存儲爲DECIMAL並且持續時間作爲INT存儲在SQL中,因爲它們處理時間有沒有簡單的方法來擺脫值如12.75作爲例子, STAR TIME = 12.45 DURATION = 30 // 30 mins START TIME + DURATION/10 = 12.75 如果myTime是11.05,它給出了錯誤的反饋 –