如何在' YYYY / MM / DD'中保存日期尽管NLS_DATE_FORMAT被设置为' DD-MON-YY'

时间:2017-05-31 09:07:16

标签: oracle date plsql

目前在我的数据库中

nls_date_format = 'DD-MON-YY'

但我想以YYYY / DD / MM格式保存日期。 是否可以以YYYY / DD / MM格式保存数据,因为当我这样做时

insert into tab1(name) values to_date(sysdate,'YYYY/DD/MM') ;

它显示以下错误:

Error report -
SQL Error: ORA-03001: unimplemented feature
03001. 00000 -  "unimplemented feature"
*Cause:    This feature is not implemented.
*Action:   None.

改变会话有效,例如

alter session set nls_date_format = 'YYYY/DD/MM' ;
insert into tab1(name) values to_date(sysdate) ;

select * from tab1;   
2017/31/05

有没有办法在不改变会话的情况下保存数据。所以数据会保存在表格的“YYYY / MM / DD”中。格式而不是NLS_DATE_FORMAT?

先谢谢

2 个答案:

答案 0 :(得分:0)

您无法在日期列中保存日期格式。

您可以将to_char(your_date,'YYYY/DD/MM')之类的日期写入数据类型为varchar的列。

当您阅读数据时,您可以使用to_date等功能to_date(your_value,'YYYY/DD/MM')

答案 1 :(得分:0)

DATE和TIMESTAMP列没有任何特定格式。您可以显示自己的格式。您想设置默认格式意味着您可以设置NLS设置。