我正在使用EF 6與Oracle,我正在嘗試使用員工編號和日期字段進行多列連接。我無法讓LEFT OUTER JOIN正常工作,我很確定這是因爲日期。我知道Oracle中的日期可能會非常棘手,我通常必須使用「TO_DATE」函數去掉HH:mm:ss,並且只使用mm/dd/yyyy。但是,我不知道如何使用EF來實現這一點。EF 6與Oracle - 如何加入日期字段?
我試過使用.ToShortDateString去除只有mm/dd/yyyy,但我不得不將它解析回DateTime以便通過以下錯誤:The type of one of the expressions in the join clause is incorrect. Type interface failed in the call to 'join'
。從對該錯誤的研究看來,我的「reportDate」必須是DateTime類型才能匹配Oracle中的h.REPORT_DATE(DATETIME)字段。將它解析回DateTime的問題是,它變成「mm/dd/yyyy 12:00:00 AM」,並導致數據未加入。
這是一些代碼。
DateTime reportDate = DateTime.Parse(DateTime.Today.ToShortDateString());
var data = (from e in db.SAP_EMPLOYEE
join h in db.ABSMGMT_HOURS on new { a = e.EMP, b = reportDate }
equals new { a = h.EMP_ID, b = h.REPORT_DATE}
into t from rt in t.DefaultIfEmpty()
任何人都知道如何使用EF 6和Oracle處理mm/dd/yyyy日期格式?
如果它與EF6 ...'trunc(date)'一起使用,那麼您只能在DD/MM/YYYY上進行匹配。沒有時間部分。 '當sysdate-2/24 = sysdate then 1 else 0 end時,選擇案例trunc(sysdate-2/24)= trunc(sysdate)then 1 else 0從雙重截斷結束trunc截斷時間 – xQbert
我知道在SQL我會使用trunc(日期),但如何與EF一起使用? EF沒有trunc()作爲我可以告訴的函數。 – Caverman
'https://social.msdn''var x = myContext.MyTable.Where(i =>(i.MyDateColumn> = DateTime.ToDay)&&(i.MyDateColumn
xQbert