
Databse
9i数据库引入了一种新特性,可以存储时间戳。时间戳可以存储世纪、4位年、月、日、时(以24小时格式)、分、秒。与DATE类型相比,时间戳具有以下优点:时间戳可以存储秒的小数位 时间戳可以存储时区。下面介绍时间戳类型。 时间戳类型类
型说
明TIMESTAMP[(seconds_precision)]存储世纪、4位的年、月、日、时(以24小时格式)、分和秒。seconds_precision为可选参数,用于指定精度,该参数为一个整数,范围从0~9,默认值为9;意思是表示秒的数字的小数点右边可以存储9位数字。如果试图在秒的小数中保存超过TIMESTAMP存储精度的数字,那么该小数将被取整TIMESTAMP[(seconds_precision)]WITH
TIME
ZONE扩展TIMESTAMP,用于存储时区TIMESTAMP[(seconds_precision)]WITH
LOCAL
TIME
ZONE扩展TIMESTAMP,将给定的时间值转换成数据库的本地时区。转换过程称为时间值的规格化(normalizingv_timestamp
:=
to_timestamp(to_char(sysdate,
'yyyy-mm-dd
hh24:mi:ss'),'yyyy-mm-dd
hh24:mi:ss.ff')
我认为这句话的意思就是把系统时间转化为时间戳,目的是使时间更精确。
oracle数据库的控制文件包含了以下信息:
1、数据库名称
2、数据库创建的时间戳
3、相关的数据文件、重演日志文件的名称和位置
4、表空间信息
5、数据文件脱机范围
6、日志历史
7、归档日志信息
8、备份组和备份块信息
9、文件和重演日志信息
10、数据文件拷贝信息
11、当前日志序列数
12、检查点(checkpoint)信息
扩展资料
Oracle数据库中,数据库控制文件维护着数据库的全局物理结构,用以支持数据库成功的启动和运行。创建数据库时,同时就提供了与之对应的数据库控制文件。
在数据库使用过程中,Oracle不断的更新数据库控制文件,所以只要数据库是打开的,数据库控制文件就必须处于可写状态。如果,犹豫某些原因控制文件不能被访问,那么数据库也就不能正常的工作了。
每一个控制文件只能与一个Oracle数据库相关联。数据库控制文件包含了数据库实例的启动和正常 *** 作时,访问数据库所需的关于数据库的信息。数据库控制文件的内容只有Oralce可以修改,数据库管理员和用户都不能对其进行编辑。
这个和数据库安装的时候选择的时区有关,一般国内安装都是选择北京时区。
查看timestampselect current_timestamp,systimestamp from dual
current_timestamp systimestamp
12-12月-18 04.24.02.427990 下午 +08:00 12-12月-18 04.24.02.427980 下午 +08:00 查看时区
select dbtimezone,sessiontimezone from dual
dbtimezone sessiontimezone
+00:00 +08:00
对于显示是12小时制这个问题,和客户端的 *** 作系统有关,与实际存储的数据无关。
如果想显示成24小时制,修改客户端 *** 作系统的环境变量可以达到目的:
NLS_TIMESTAMP_FORMAT
YYYY-MM-DD HH24:MI:SS:FF6
按照上图设置后,重启plsql,查询后我们能看到时间显示成“2018-12-12 16:16:35:877000”这样的格式了。
但是,如果建库时,时间设置错误或者是将来要改变时区时,表中的值会不会变化呢?因此引用官方的回答:
对于time zone数据类型的数据,即使你更新了数据库时区,原数据也不会进行对应调整,只能你导出数据,然后调整数据库时区,再把原始数据导入即可。所以,一般情况下,一定不要调整数据库时区。官方建议数据库时间采用UTC,因为这种时区性能好。如果没有显式指定数据库时区,数据库会使用 *** 作系统的时区,但是如果 *** 作系统时区不是一个合理的数据库时区,数据库则会使用默认的时区UTC,且UTC的取值范围为-12:00 to +14:00。等等,为什么会有+14?百度一下基里巴斯。这是一个神奇的网站国度。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)