代码之家  ›  专栏  ›  技术社区  ›  Koen

OracleCommand似乎可以转换文字日期

  •  1
  • Koen  · 技术社区  · 15 年前

    我使用OracleCommand和OracleDataAdapter为Oracle构建了一个小型查询工具。用户只需输入一个完整的查询(没有参数),然后执行,结果就会显示在datagridview中。到目前为止还不错,尽管我尝试了一个无效的查询,例如:

    SELECT * FROM mytable WHERE dateColumn = '1-JAN-10'
    

    谢谢

    1 回复  |  直到 15 年前
        1
  •  4
  •   Alex Poole    15 年前

    查询可能对Oracle有效。你不必使用 to_date() 如果您以会话的日期格式提供日期字符串,尽管这样做通常会更好,以避免类似的问题。

    听起来你有不同的想法 NLS_DATE_FORMAT 或者会话日期格式是由OracleCommand隐式设置的。

    select value from nls_session_parameters where parameter = 'NLS_DATE_FORMAT' 从SQL*Plus和SQL Developer,以及您的工具,以及 nls_database_parameters 查看哪个正在覆盖数据库默认值。

    DD-MON-RR 您希望在其他地方使用其他格式,但如果不检查这些表,就很难说您在哪里使用数据库默认值,以及在会话级别重写它。我猜这是DB默认值,在其他环境中有一个覆盖。

    alter session set nls_date_format='DD-MON-RR'; 然后重新运行无效的查询-应该也可以。