C# 连接到 Oracle DB 日期时间格式

标签 c# oracle datetime cultureinfo

我有一个连接到 Oracle 后端的 .Net Web 应用程序。 我有一个基本页面,每个页面都使用我设置的位置

    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'

我错过了什么?

最佳答案

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

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

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

关于C# 连接到 Oracle DB 日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534250/

相关文章:

python - 相当于 GNU coreutils/bin/date 输出与 Python2(时区)

C# async dispatcher operation not recognized variable 自启动以来已更改

oracle - 将 OpenSSL 生成的私钥导入 Oracle Wallet

oracle - 在 sqlplus/Oracle 中将纪元转换为日期

oracle - PLSQL:可以在 SQLPLUS 中使用 BOOLEAN 数据类型吗?

arrays - 从 PL/SQL 中的多列关联数组中删除重复项

PHP 使用 DatePeriod 创建带休息时间的时间段

c# - 使用 Linq 创建对象列表与创建字典的性能比较?

c# - 测试泛型类型是否为字符串的最佳方法? (C#)

c# - 使用部分类扩展 Entity Framework 5 实体并将其映射到现有的其他实体