今天做克隆数据的时候想用SYSDATE 发现了个奇怪问题(我用的是Oracle 9)
首先有两张表分别是
CREATE TABLE TB_A(
ID INT PRIMARY KEY,
NAME VARCHAR2(40)
)
CREATE TABLE TB_B(
ID INT PRIMARY KEY,
NAME VARCHAR2(40),
OTIME VARCHAR2(40)
)
使用INSERT INTO TB_B(ID,NAME,OTIME) (SELECT ID,NAME,SYSDATE FROM TB_A WHERE ID=1)
成功插入一条数据 不过OTIME却是 28-12月-10
而直接使用SELECT SYSDATE FROM DUAL; 结果为: 2010-12-28 11:23:07
原来一个是字符类型一个是日期类型 记下
随便从网上获得一些资源也记下
SYSDATE
--得到目前系統的時間
ex.
SELECT SYSDATE FROM DUAL;
SYSDATE
----------
2010-12-28 11:21:29
常用之日期格式
日期格式 说明
------------------------------------------------------------------------
YYYY-MM-DD -- 年-月-日 同理 年/月/日
YYYY -- 年(4位)
YYY -- 年(3位)
YY -- 年(2位)
MM -- 月份
DD -- 日期
D -- 星期 星期日= 1 星期一 = 2 星期二 = 3
-- 星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 7
DDD -- 一年的第几天
WW -- 一年的第几周
W -- 一月的第几周
YYYY-MM-DD HH24:MI:SS -- 年-月-日 时(24小时):分:秒
YYYY-MM-DD HH:MI:SS -- 年-月-日 时(非24小时制):分:秒
ex.
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL; -- 2010-12-28
SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL; -- 2010
SELECT TO_CHAR(SYSDATE,'YYY') FROM DUAL; -- 010
SELECT TO_CHAR(SYSDATE,'YY') FROM DUAL; -- 10
SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL; -- 12
SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL; -- 28
SELECT TO_CHAR(SYSDATE,'D') FROM DUAL; -- 3
SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL; -- 362
SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL; -- 52
SELECT TO_CHAR(SYSDATE,'W') FROM DUAL; -- 4
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL; -- 2010-12-28 11:17:39
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MI:SS') FROM DUAL; -- 2010-12-28 11:17:48