2009-10-07 7 views
2

J'ai une webapp .Net qui se connecte à un back-end Oracle. J'ai une page de base que chaque page utilise où je mets monC# Connexion à Oracle DB DateTime mise en forme

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); 
} 

Dans mon application j'utilise un OracleDataAdapter pour exécuter des requêtes de texte brut sur la base de données. Je filtrage des dates comme si

"MyDateColumn" = '01-Jan-2000' 

Cela fonctionne très bien sur mon local. Cependant, lorsque je reçois au serveur les seules dates qui travaillent dans mon filtre sont au format

"MyDateColumn" = '2000 Jan 01' 

Qu'est-ce que je manque?

+0

Merci les gars! Fonctionne très bien. –

Répondre

3

vous devriez toujours comparer les colonnes DATE explicitement les valeurs DATE, i-e:

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

Ne jamais se fier à la conversion de la date implicite.

1

Essayez:

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

au lieu de compter sur les conversions implicites de chaîne à ce jour.

1

Où dt est une variable de type DateTime, procédez comme suit

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