2009-10-07 136 views
2

我有一个连接到Oracle后端的.Net网络应用程序。 我有每一个页面使用了,我把我的C#连接到Oracle数据库日期时间格式

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

在我的应用程序使用一个OracleDataAdapter在数据库上执行纯文本查询基页。 我过滤日期,像这样

"MyDateColumn" = '01-Jan-2000' 

能正常工作在我的地方。然而,当我到达服务器只在我的过滤器的工作日期格式

"MyDateColumn" = '2000 Jan 01' 

我缺少什么?

+0

谢谢你们!很棒。 – 2009-10-19 18:58:38

回答

3

你应该始终明确地DATE列比较日期值,I-E:

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

从不依靠隐日期转换。

1

尝试:

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

,而不是依赖隐式转换从字符串到日期。

1

哪里dt为DateTime类型的变量,尝试以下

TO_DATE( ' “+ dt.ToString( ”MM/DD/YYYY HH:MM:SS“)+”',“MM/DD/yyyy HH:mi:ss')