PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

取Oracle中sysdate作为聊天室即时时间

原创
2016-06-07 16:55:47 795浏览

从Oracle中取sysdate问题。 取出的createTime为null,经过打印hash,终于找到问题所在。原来我将取出Oracle的sysdate命名

    从Oracle中取sysdate问题。

    取出的createTime为null,,经过打印hash,终于找到问题所在。原来我将取出Oracle的sysdate命名一个别名systemTime,后面就用systemTime= hash.get("systemTime").toString(); 而hash中真正的键是systemtime.下面是修正后的代码:

public class OracleSystemTime{

              public  String getSystemTime()

              {   

                     String systemTime=null;

                     String sql = "select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') systemtime from dual";

                     Hashtable hash = DBHelper.getValue(sql);

                     if(hash.isEmpty())

                            systemTime= null;

                     else

                            systemTime= hash.get("systemtime").toString();

                     return systemTime;

              }

}

 

打印的结果:createTime=2009-12-21 20:00:35

打印的SQL:insert into a_chat_title (id,room_title, create_user_id, begin_time, room_id) values(a_chat_title_SEQ.nextval,'test','admin','2009-12-21 20:00:35',10)

 

    将取出的sysdate回插到数据库中。

    注意to_date函数在insert语句中的用法,其中用到的变量一定要用'" stringname "'的格式表示。(我晕,花了这么长时间问题竟然出在这个地方。网上也没有相关的解答) 如:to_date('" createTime "','yyyy-mm-dd hh24:mi:ss')。下面是修正后的代码:

OracleSystemTime systemTime=new OracleSystemTime();

String createTime =systemTime.getSystemTime();

String insertSql = "insert into a_chat_title (id,room_title, create_user_id, begin_time, room_id)" " values(a_chat_title_SEQ.nextval,'" room_title "','" userId "',to_date('" createTime "','yyyy-mm-dd hh24:mi:ss')," roomId ")";

linux

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。