2011-11-17 327 views
0

在linq中,我編寫了一個查詢日期,這是之間和SQL中,在這種情況下,我沒有得到dtata,當用戶從日期輸入相同的日期和日期數據不顯示數據的位置數據庫中是否存在該特定日期。 這是我的linq查詢。日期比較

var result = from MaterialStatus in materialRequistionEntities.Tbl_MatReq_NewItemReq_M 
          join CurrentStatus in materialRequistionEntities.Tbl_StatusMaster_M on 
          MaterialStatus.ReqCurStatus equals CurrentStatus.StatusId 
          join Employee in materialRequistionEntities.Tbl_Emp_Master_M 
           on MaterialStatus.Indentor equals Employee.EmpId 
           where (MaterialStatus.CreatedOn >= dt.Date && MaterialStatus.CreatedOn <= dt1.Date) 
           select ***************** 

回答

1

你應該這樣做:

var upperDate = dt1.Date.AddDays(1); 
... 
where (MaterialStatus.CreatedOn >= dt.Date 
    && MaterialStatus.CreatedOn < upperDate 

通過這種方式,表達式可以轉換爲一個sargable SQL謂詞。

+0

當我添加AddDays(1) –

+0

時出現錯誤是否'dt1.Date'不是'DateTime'? –

+0

你是日期時間 –

0

假設dt1在現實中是大於dt,你可以使用

var result = from MaterialStatus in materialRequistionEntities.Tbl_MatReq_NewItemReq_M 
          join CurrentStatus in materialRequistionEntities.Tbl_StatusMaster_M on 
          MaterialStatus.ReqCurStatus equals CurrentStatus.StatusId 
          join Employee in materialRequistionEntities.Tbl_Emp_Master_M 
           on MaterialStatus.Indentor equals Employee.EmpId 
           where (MaterialStatus.CreatedOn.Date >= dt.Date && MaterialStatus.CreatedOn.Date <= dt1.Date) 
           select ***************** 

通知CreatedOn.Date應對時/分/秒/毫秒組件

+0

Mr. John Gathogo我沒有在MaterialStatus.Createdon獲取日期。 –

+0

@Suryasasidhar:是不是創建在日期時間字段?如果是,你應該可以做'.Date' –

0

我希望它會好的。

where (MaterialStatus.CreatedOn.Value.Date >= dt.Date && MaterialStatus.CreatedOn.Value.Date <= dt1.Date.AddDay(1))