系统日期的操作
日期是很特殊的数据类型,用好了可以提高数据库的性能,而使用不当往往是错误的根源,如果你使用
字符型数据来存储日期,就放弃日期特有的计算功能。
函数
SYSDATE求当前数据库的时间。
SYSDATE
01-MAY-07
日期的显示格式和客户端的配置相关。
查看当前的日期显示格式
PARAMETER VALUE
NLS_DATE_FORMAT DD-MON-RR
如果你的显示是如下样子:
PARAMETER
VALUE
NLS_DATE_FORMAT
DD-MON-RR
这表示折行了,请限制
value列的宽度
col value for a20
代表的含义是凡是列的名称是
value的,都按照
20个宽度来显示,你想取消该列的定义
col value clear,其中
col是
column的缩写。你想查看帮助
help column即可
重新设定为我们想要的格式。
SYSDATE
2007/05/01:16:32:54
查看系统时间,数据库本身没有时间,它有
scn号,和我们的时间不同。
设定为默认的显示格式
再次查看,我们发现日期的显示随着客户端的格式变化而变化。
日期的内部存储都是以
yyyymmddhh24miss存在数据库中
日期是很特殊的数据类型,用好了可以提高数据库的性能,而使用不当往往是错误的根源,如果你使用
字符型数据来存储日期,就放弃日期特有的计算功能。
函数
SYSDATE求当前数据库的时间。
select sysdate from dual;
SYSDATE
01-MAY-07
日期的显示格式和客户端的配置相关。
查看当前的日期显示格式
select * from nls_session_parameters where parameter='NLS_DATE_FORMAT';
PARAMETER VALUE
NLS_DATE_FORMAT DD-MON-RR
如果你的显示是如下样子:
PARAMETER
VALUE
NLS_DATE_FORMAT
DD-MON-RR
这表示折行了,请限制
value列的宽度
col value for a20
代表的含义是凡是列的名称是
value的,都按照
20个宽度来显示,你想取消该列的定义
col value clear,其中
col是
column的缩写。你想查看帮助
help column即可
alter session set NLS_DATE_FORMAT='yyyy/mm/dd:hh24:mi:ss';
重新设定为我们想要的格式。
select sysdate from dual;
SYSDATE
2007/05/01:16:32:54
查看系统时间,数据库本身没有时间,它有
scn号,和我们的时间不同。
alter session set NLS_DATE_FORMAT='DD-MON-RR';
设定为默认的显示格式
select sysdate from dual;
再次查看,我们发现日期的显示随着客户端的格式变化而变化。
日期的内部存储都是以
yyyymmddhh24miss存在数据库中