datarectime传进来的时候是字符串类型明明是'2008-07-23 12:33:22',可是插入到tb_datarecord表里面之后就显示'2008-07-23',这个是什么原因啊?
CREATE OR REPLACE PROCEDURE insertfendata (
dataname IN VARCHAR2,
fenstate IN NUMBER,
fenuserid IN NUMBER,
datatypeid IN NUMBER,
dataurl IN VARCHAR2,
datadesc IN VARCHAR2,
datarectime IN VARCHAR2
)
IS
sqlstr VARCHAR2 (2000);
did NUMBER (12);
BEGIN
SELECT datarecord_seq.NEXTVAL
INTO did
FROM DUAL; sqlstr :=
'insert into tb_datarecord(dataid,dataname,fenstate,fenuserid,datatypeid,dataurl,datadesc,datarectime)
values('
|| TO_CHAR (did)
|| ','''
|| dataname
|| ''','
|| TO_CHAR (fenstate)
|| ','
|| TO_CHAR (fenuserid)
|| ','
|| TO_CHAR (datatypeid)
|| ','''
|| dataurl
|| ''','''
|| datadesc
|| ''','''
|| to_date(datarectime,'yyyy-mm-dd HH24:mi:ss')
|| ''')'; EXECUTE IMMEDIATE sqlstr; sqlstr :=
'insert into tb_filemetadata(fid,idinfo) values('
|| TO_CHAR (did)
|| ','''
|| dataname
|| ''')'; EXECUTE IMMEDIATE sqlstr;
END insertfendata;
CREATE OR REPLACE PROCEDURE insertfendata (
dataname IN VARCHAR2,
fenstate IN NUMBER,
fenuserid IN NUMBER,
datatypeid IN NUMBER,
dataurl IN VARCHAR2,
datadesc IN VARCHAR2,
datarectime IN VARCHAR2
)
IS
sqlstr VARCHAR2 (2000);
did NUMBER (12);
BEGIN
SELECT datarecord_seq.NEXTVAL
INTO did
FROM DUAL; sqlstr :=
'insert into tb_datarecord(dataid,dataname,fenstate,fenuserid,datatypeid,dataurl,datadesc,datarectime)
values('
|| TO_CHAR (did)
|| ','''
|| dataname
|| ''','
|| TO_CHAR (fenstate)
|| ','
|| TO_CHAR (fenuserid)
|| ','
|| TO_CHAR (datatypeid)
|| ','''
|| dataurl
|| ''','''
|| datadesc
|| ''','''
|| to_date(datarectime,'yyyy-mm-dd HH24:mi:ss')
|| ''')'; EXECUTE IMMEDIATE sqlstr; sqlstr :=
'insert into tb_filemetadata(fid,idinfo) values('
|| TO_CHAR (did)
|| ','''
|| dataname
|| ''')'; EXECUTE IMMEDIATE sqlstr;
END insertfendata;
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
或者显式指定该字段的显示方式
...to_char(datarectime,''yyyy-mm-dd hh24:mi:ss') ...