Как получить данные из базы данных оракула, основанные между 2 полем даты и времени, зная дату ввода только? - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь получить данные из базы данных оракула между двумя датами. Я продолжаю получать следующую ошибку:

Исключение типа 'Oracle.ManagedDataAccess.Client.OracleException' произошло в Oracle.ManagedDataAccess.dll, но не было обработано в коде пользователя

Я не уверен, что проблема из запроса, который я написал:

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

Обратите внимание, что дата хранится в базе данных как дата и время, включая время, и я хочу получить данные только на основе даты

1 Ответ

0 голосов
/ 26 июня 2019

Попробуйте изменить приведенную ниже строку кода. Если это не сработает, поделитесь фактической ошибкой оракула. ​​

 command.CommandText = string.Format("select * from datesTable where TO_CHAR(dates, 'DDMMYYYY') BETWEEN '{0}' AND '{1}'", fromDate.ToString("ddMMyyyy"), toDate.ToString("ddMMyyyy"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...