我正在尝试使用 linq 生成要在 Oracle11g 中使用的 sql 语句。
使用日期时会出现问题:
C#代码:
DateTime convertedMinStartDateForEvent = Convert.ToDateTime(minStartDateForEvent);
DateTime convertedMinEndDateForEvent = Convert.ToDateTime(minEndDateForEvent);
var query = (from myTableRec in uow.myTable
where myTableRec.startdate >= convertedMinStartDateForEvent && myTableRec.endDate < convertedMinEndDateForEvent
linq 生成的 SQL 给出
SELECT *
FROM <table>
WHERE start_date > '24/11/2012 00:00:00' and end_date < '28/11/2012 00:00:00'
这会导致 oracle 错误:ORA-01830 - 日期格式图片在转换整个输入字符串之前结束
将 TO_DATE 添加到查询修复了 ORA-01830,因为它正在将字符串转换为 oracle 日期,同时现在知道日期格式。
SELECT *
FROM <table>
WHERE start_date > TO_DATE('24/11/2012 00:00:00','DD/MM/YYYY HH24:MI:SS') and end_date < TO_DATE('28/11/2012 00:00:00','DD/MM/YYYY HH24:MI:SS')
那么,有没有办法将 TO_DATE 添加到 LINQ(对于 oracle)?如果没有,请告诉我如何解决此问题。
谢谢