C#连接到Oracle DB DateTime格式

我有一个连接到Oracle后端的.Net webapp。 我有一个基页,每个页面使用我设置的地方

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' 

这在我的本地工作正常。 但是,当我到达服务器时,我的filter中唯一可用的日期是格式

 "MyDateColumn" = '2000 Jan 01' 

我错过了什么?

你应该总是明确地将DATE列与DATE值进行比较,即:

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

永远不要依赖隐式日期转换。

尝试:

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

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

其中dt是DateTime类型的变量,请尝试以下操作

to_date(’“+ dt.ToString(”MM / dd / yyyy HH:mm:ss“)+”’,’MM / dd / yyyy HH:mi:ss’)