Oracle的"日期'[yyyy-mm-dd]"字面值是否始终使用yyyy-mm-dd模式?

Mar*_*R-L 8 oracle nhibernate plsql oracle10g

改写,因为我使用日期如下:

date'2010-04-10'
Run Code Online (Sandbox Code Playgroud)

,结果可能是2010年4月10日(例如2010年10月4日)吗?

更新我听到你和博士说的话.但...

当批处理作业运行时,使用硬编码的date'yyyy-mm-dd':s,它会导致某些(非确定性)计算失败.在PL/SQL Developer中运行失败的SQL语句永远不会产生相同的,不正确的值.

首先,我运行相同的计算(数十万),日期''日期文字替换为to_date('','')函数,一切正常.

然后,我使用了NHibernate及其LINQ提供程序,并完全取代了手工制作的SQL.......一切正常...... NHibernate生成了一个''日期文字,包括时间部分,BTW.

更新我的一位同事写了一些代码,可以重现我们环境中的错误.他在Oracle论坛上发布了他的发现(包括代码):https://forums.oracle.com/forums/thread.jspa? threadID = 2304569 & tstart = 0

更新根据zerkms的回答改变了标题.

zer*_*kms 13

它不是函数,而是日期文字.并且,是的,YYYY-MM-DD无论任何oracle设置,它总是匹配.

  • 并且在其他几个DBMS中以相同的方式工作. (4认同)

Ben*_*oit 10

以下是关于日期时间文字的Oracle 10g SQL参考链接.摘抄:

ANSI日期文字不包含时间部分,必须以此格式指定('YYYY-MM-DD').或者,您可以指定Oracle日期值,如以下示例所示:

TO_DATE('98-DEC-25 17:30','YY-MON-DD HH24:MI')