用ibatis写的SQL:
insert into claim_dispatch
(created_by,updated_by,
dispatch_no,parent_dispatch_no,dispatch_type_code,
task_handle_department,task_handle_group,task_handler_code,
task_handle_time,task_status,process_instance_no,
report_no,claim_no,re 
)values(
    #createdBy:VARCHAR#,#updatedBy:VARCHAR#,
    #dispatchNo:VARCHAR#,#parentDispatchNo:VARCHAR#,#dispatchTypeCode:VARCHAR#,
    #taskHandleDepartment:VARCHAR#,#taskHandleGroup:VARCHAR#,#taskHandlerCode:VARCHAR#, 这里:decode(#taskHandleTime:TIMESTAMP#,null,null,sysdate),
 
    #taskStatus:VARCHAR#,#processInstanceNo#,
    #reportNo:VARCHAR#,#claimNo:VARCHAR#,#re:VARCHAR# 
    )当我插入的时候taskHandleTime为new Date();但是插到数据库里后只显示日期,我想要插入日期和时间格式,怎么实现???!!!把TIMESTAMP换成DATE也不行,去掉:TIMESTAMP
还是不行,查是不用decode就行,但是这时明明系统时间是中午12:30,它却显示00:30,怎么解决这些问题呢?急......

解决方案 »

  1.   

    不知道阁下是否解决了问题?
     不过date格式是刻意存储日期和时间的,timestamp也是可以的。只是显示的时候要注意而已。至于服务器时间,或者时区都是可以调整的。
      

  2.   

    date,timestamp都是包含了日期时间的格式,显示的时候可以按你自己的需要格式化默认是按照nls_date_format参数指定的格式显示
      

  3.   

    alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss' 指定日期格式就可以了,
    显示00:30是应为你使用了12小时制
      

  4.   

    alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'
      

  5.   

    提问题时项目紧,提完后找到了解决办法,也忘了上来看贴了,不过还是要多谢各位,是这样的,decode(#taskHandleTime:TIMESTAMP#,null,null,sysdate)的意思是说如果taskHandleTime为null,插入值则为null,如果不为null,插入值则为sysDate;但是问题也就出现了,不过本人还是不太清楚,反正最后换成这样就行了:
    decode(#taskHandleTime:TIMESTAMP#,null,to_date(null),sysdate)--null为char型?有高人可以出来指点一下么?
      

  6.   

    decode(#taskHandleTime:TIMESTAMP#,null,to_date(null),sysdate)
    改为:
    nvl(#taskHandleTime:TIMESTAMP#,sysdate)
    这样不行吗?