Pregunta

Tengo una aplicación web .NET que se está conectando a un backend de Oracle. Tengo una página base que usa cada página donde configuré mi

    protected override void OnPreInit(EventArgs e)
{
    System.Globalization.CultureInfo cultureInfo =
        new System.Globalization.CultureInfo("en-CA");

    // Creating the DateTime Information specific to our application.
    System.Globalization.DateTimeFormatInfo dateTimeInfo =
        new System.Globalization.DateTimeFormatInfo();

    // Defining various date and time formats.
    dateTimeInfo.DateSeparator = "/";
    dateTimeInfo.LongDatePattern = "dd-MMM-yyyy";
    dateTimeInfo.ShortDatePattern = "dd-MMM-yyyy";
    dateTimeInfo.MonthDayPattern = "dd/MM";
    dateTimeInfo.LongTimePattern = "HH:mm";
    dateTimeInfo.ShortTimePattern = "HH:mm";
    dateTimeInfo.FullDateTimePattern = "dd-MMM-yyyy";

    // Setting application wide date time format.
    cultureInfo.DateTimeFormat = dateTimeInfo;

    // Assigning our custom Culture to the application.
    //Application.CurrentCulture = cultureInfo;
    Thread.CurrentThread.CurrentCulture = cultureInfo;
    Thread.CurrentThread.CurrentUICulture = cultureInfo;
    base.OnPreInit(e);
}

En mi aplicación, uso un OracledataAdapter para ejecutar consultas de texto sin formato en la base de datos. Estoy filtrando fechas como así

"MyDateColumn" = '01-Jan-2000'

Esto funciona bien en mi local. Sin embargo, cuando llego al servidor, las únicas fechas que funcionan en mi filtro están en formato

"MyDateColumn" = '2000 Jan 01'

¿Qué me estoy perdiendo?

¿Fue útil?

Solución

Siempre debes comparar explícitamente DATE Valores de columnas hasta la fecha, es decir:

"MyDateColumn" = to_date('01-Jan-2000', 'dd-Mon-yyyy')

Nunca confíe en la conversión de fecha implícita.

Otros consejos

Try:

"MyDateColumn" = to_date('01-Jan-2000','DD-MON-YYYY')

instead of relying on implicit conversions from string to date.

Where dt is a variable of type DateTime, try the following

to_date('" + dt.ToString("MM/dd/yyyy HH:mm:ss") + "', 'MM/dd/yyyy HH:mi:ss')

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top