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
敲门砖: 代码谱写人生