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の場合)に追加する方法はありますか?そうでない場合は、この問題を回避する方法を教えてください。
ありがとう