2

我有一个连接到 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'

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

"MyDateColumn" = '2000 Jan 01'

我错过了什么?

4

3 回答 3

3

您应该始终明确地将DATE列与 DATE 值进行比较,即:

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

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

于 2009-10-07T21:26:22.710 回答
1

尝试:

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

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

于 2009-10-07T21:26:28.513 回答
1

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

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

于 2010-03-17T11:23:03.310 回答