在oracle中格式化DATE

我有一个表格中的date字段,其中包含dd-MMM-yy格式的date。

我想创build一个函数,获取这个date检查它不为null,然后将其更改为yyyy / mm / dd格式

但问题是,甲骨文不接受dd-MMM-yy合成date作为input参数,它说:请使用yyyy-MM-dddate格式!

我怎么能先把dd-MMM-yy formate换成yyyy-MM-dd,所以oracle接受它作为input,然后把它改成yyyy / mm / dd

One Solution collect form web for “在oracle中格式化DATE”

:请使用yyyy-MM-dddate格式!

这与Oracle错误无关。

我有一个表格中的date字段,其中包含dd-MMM-yy格式的date。

不,你感到困惑。 Oracle不会按照您看到的格式存储date。 它将内部存储在7个字节中 ,每个字节存储不同的date时间值。

Byte Description ---- ------------------------------------------------- 1 Century value but before storing it add 100 to it 2 Year and 100 is added to it before storing 3 Month 4 Day of the month 5 Hours but add 1 before storing it 6 Minutes but add 1 before storing it 7 Seconds but add 1 before storing it 

如果要显示,请使用适当的FORMAT MODEL的 TO_CHAR

在插入时,使用适当的FORMAT MODEL的 TO_DATE

默认情况下,您看到的格式是特定于语言环境的NLS设置

 SQL> select parameter, value from v$nls_parameters where parameter='NLS_DATE_FORMAT'; PARAMETER VALUE --------------- ---------------------------------------------------------------- NLS_DATE_FORMAT DD-MON-RR SQL> select sysdate from dual; SYSDATE --------- 03-FEB-15 SQL> select to_char(sysdate, 'mm/dd/yyyy hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'MM ------------------- 02/03/2015 17:59:42 SQL> 

更新关于MMM格式。

如果您的月份名称最多为三个字符,则使用MMM,然后使用MON

  • 为什么Oracle不告诉你哪个表或视图不存在?
  • “安全”TO_NUMBER()
  • 我如何决定何时使用正确的连接/左连接或内部连接或如何确定哪个表在哪一边?
  • 如何加载大量的string来匹配oracle数据库?
  • Oracle SQL,连接多个列+添加文本
  • 我如何在Oracle中做第一名?
  • 来自命令行的sqlplus语句
  • ORA-00918:列中不明确定义的SELECT *
  • 如何在初始化安装Oracle数据库11g Express Edition后创build一个新的数据库?
  • 何时需要在Oracle SQL中使用分号与斜线?
  • 业务逻辑:数据库或应用层