oracle 日期时间格式转化


oracle 系统时间有 SYSDATE 与 SYSTIMESTAMP;
SYSDATE:不支持毫秒,取的是系统时间;
SYSTIMESTAMP:支持毫秒,日期,时间是给时区转换的,秒和毫秒是取的系统的。

日期转字符窜:
一、不取毫秒:
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
简要说明,
YYYY 年
MM   月
DD   日
HH24 表示是24小时制,HH表示12小时制
MI   分钟 注:是 MI 不是MM MM表示的是月份
SS   秒
不区分大小写,如果要取几天前或取几天后如下
TO_CHAR(SYSDATE + n, 'YYYY-MM-DD HH24:MI:SS')
n 为负数表示 n天前
n 为正数表示 n天后
例:select TO_CHAR(SYSDATE+1, 'YYYY-MM-DD HH24:MI:SS') from dual;

二、取毫秒:
TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FFn')
简要说明,
YYYY 年
MM   月
DD   日
HH24 表示是24小时制,HH表示12小时制
MI   分钟 注:是 MI 不是MM MM表示的是月份
SS   秒
FF   毫秒,n为 1~9 的正整数,表示示取毫秒的位数,默认为6位
不区分大小写, 不支持日期运算
例:select TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF') from dual;

字符窜转日期:
格式字符窜在上面已说明,
转为 SYSDATE 用函数: TO_DATE
select TO_DATE('2015-06-16 11:38:58', 'YYYY-MM-DD HH24:MI:SS') from dual;

转为 SYSTIMESTAMP用函数: TO_TIMESTAMP
select TO_TIMESTAMP('2015-06-16 11:38:58.906000', 'YYYY-MM-DD HH24:MI:SS.FF') from dual;
在转换为 SYSTIMESTAMP 时注意 如果毫秒位数n有设置时,待转换的毫秒位数不能大于这个设置n, 不设置时默认为9位,待转换的毫秒位数不大于9位就可以。

--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : [email protected]
qq    : 1035862795
敲门砖: 代码谱写人生



猜你喜欢

转载自binary-space.iteye.com/blog/2220004