【问题标题】:Oracle TO_DATE functionOracle TO_DATE 函数
【发布时间】:2015-10-22 19:39:23
【问题描述】:

我一直认为 to_date 函数字符串和日期格式应该匹配。为什么下面的语句工作正常?

select TO_DATE('20151014','yyyy-mm-dd') from dual; 

oracle 现在是否在将字符串转换为日期之前忽略特殊字符?

这是在 Oracle 11g 中。

【问题讨论】:

  • 也可以试试 '2015/10/14'。
  • 是的,这也有效。但为什么下面的语句有效? select TO_DATE('2015/10$14','yyyy--%-mm-dd') from dual;

标签: oracle oracle11g to-date


【解决方案1】:

我发现这很有趣并询问了 Google,它告诉我,基本上当格式不匹配时,Oracle 会尽力使其工作:

https://asktom.oracle.com/pls/apex/f?p=100:11:::NO:RP:P11_QUESTION_ID:9522299800346947976

http://www.oracledba.co.uk/tips/dates_8i.htm

您可以使用 'FX' 格式字符串使其完全匹配:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements004.htm#r18c1-t65

http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements004.htm#SQLRF00216

您每天都会学到新东西!感谢您提出这个问题!

【讨论】:

  • 非常有趣...与其他 RDBMS 相比,我一直认为 Oracle 在日期格式方面非常严格。我猜你只需要知道如何按下它的按钮。
  • 这里也一样。很有趣。
  • 当我在 2015 年 10 月 14 日实际调用 2015 年 10 月 14 日时,我也注意到了这一点。很高兴知道这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 2012-07-28
  • 2011-10-28
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
相关资源
最近更新 更多