oracle日期时间

通常,客户端与数据库建立起连接后,oracle就会给一个缺省的时间格式数据的显示形式,与所使用的字符集有关。一般显示年月日,而不显示时分秒。例如使用us7ascii字符集(或者其他的英语字符集)时,缺省的时间格式显示为28-Jan-2003,而使用zhs16gbk字符集(或其他中文字符集)时 时间格式缺省显示为:2003-1月-28,向表中插入数据时,如果不使用转换函数,则时间字段的格式必须遵从会话环境的时间格式,否则不能插入。查看当前会话的时间格式,可以使用一下的SQL语句:select sysdate from dual; 只能按照此语句的结果,才能插入数据。

如何才能修改会话中的日期格式?

1.在sql/plus中修改当前会话的日期格式

sql>alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

将当前会话的时间格式修改为这种格式:2003-01-28 15:40:48 ,这种修改方法,只对当前会话有效。如果你又连接到其他数据库,则这个日期格式就失效了。

2.修改注册表(只对windows系统)

在注册表hkey_local_machine->software->Wow6432Node->oracle->key_oraClient11g_home1 中增加一个字符串,字符串名为nls_date_format,字符串的值为你希望定义的时间格式,如:yyyy-mm-dd hh24:mi:ss,然后重新启动sqlplus,这种修改方法对sqlplus窗口有效,即不论你打开多少个sqlplus窗口,缺省的都是这种时间格式。修改服务器端的注册表无效,只有修改客户端的注册表才有效。

原文地址:https://www.cnblogs.com/gates/p/8005759.html