[英]How to retrieve data from oracle database based between 2 datetime field knowing input only date?
我試圖在2個日期之間從oracle數據庫檢索數據。 我不斷收到以下錯誤:
Oracle.ManagedDataAccess.dll中發生類型為'Oracle.ManagedDataAccess.Client.OracleException'的異常,但未在用戶代碼中處理
我不確定我寫的查詢是否有問題:
public List<GetterAndSetterObj> GetDataBasedOnSelectedPeriod(DateTime fromDate, DateTime toDate)
{
using (ProdOracleContext oracleContext = new ProdOracleContext())
{
using (OracleCommand command = oracleContext.CreateCommand)
{
command.CommandText = string.Format("select * from datesTable where TRUNC(dates) BETWEEN TO_DATE('{0}','DD-MON-RRRR') AND TO_DATE('{1}','DD-MON-RRRR')", fromDate, toDate);
var queryResult = oracleContext.Get(command);
var list_v_sum_slaies_by_lice_no = new List<getterAndSetterObj>();
foreach (DataRow row in queryResult.Rows)
{
finalList.Add(new getterAndSetterObj
{
LICENCE_NUMBER = row["LICENCE_NUMBER"].ToString(),
SHOP_NAME = row["SHOP_NAME"].ToString(),
dates= row.Field<DateTime>("dates"),
SUM_ALL = int.Parse(row["SUM_ALL"].ToString())
});
} return finalList;
}
}
}
然后,我使用以下方法調用該函數:
public List<v_sum_slaies_by_lice_no> GetDataBasedOnSelectedPeriod(string fromDate, string toDate)
{
DateTime OfromDate = DateTime.ParseExact(fromDate, "dd/MM/yyyy", null);
DateTime OtoDate = DateTime.ParseExact(toDate, "dd/MM/yyyy", null);
return dataBase.GetDataBasedOnSelectedPeriod(OfromDate, OtoDate);
}
請注意,輸入將是這樣的:20/06/2019 22/06/2019
注意,存儲在數據庫中的日期為datetime,其中包括時間,我想僅基於日期獲取數據
嘗試更改下面的代碼行。 如果無法正常工作,請共享實際的oracle錯誤。
command.CommandText = string.Format("select * from datesTable where TO_CHAR(dates, 'DDMMYYYY') BETWEEN '{0}' AND '{1}'", fromDate.ToString("ddMMyyyy"), toDate.ToString("ddMMyyyy"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.