簡體   English   中英

如何從2個datetime字段之間(僅知道輸入日期)從oracle數據庫檢索數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM