当前位置:编程学习 > JAVA >>

JDBC中在Oracle数据库中获取当前数据生成的时间

  try { 
             
     Class.forName("oracle.jdbc.driver.OracleDriver");   
       conn = DriverManager.getConnection("jdbc:oracle:thin:@stardust:1521:ORCL", "scott", "abc123");


  sql = "insert into nk(LOCAL,DESTINATION,PRICE,TIME) values(?,?,?,to_char(sysdate,'yyyy-MM-dd HH24:mm:ss'))";  
     pstmt = conn.prepareStatement(sql);                       /////这里生成的时间不对///
        pstmt.setString(1, LOCAL); 
pstmt.setString(2, DESTINATION);  
pstmt.setInt(3, PRICE);  
     pstmt.executeUpdate();   
                  } 
--------------------编程问答-------------------- 没看明白你的错误到底在什么地方!! --------------------编程问答-------------------- sysdate不对的话,可以用CURRENT_TIMESTAMP试试看 --------------------编程问答-------------------- 为什么不从程序获取当前时间?
sql = "insert into nk(LOCAL,DESTINATION,PRICE,TIME) values(?,?,?,to_char(sysdate,'yyyy-MM-dd HH24:mm:ss'))"; 
没用过这种写法 --------------------编程问答-------------------- SimpleDateFormat sdf = new SimpleDateFormat("dd-M月-yyyy");
String createDate = sdf.format(new Date());
String sql = "insert into news values (SEQ_NID.NEXTVAL, ?,?,?,?,?)";

pstmt = conn.prepareStatement(sql);
pstmt.setString(4, createDate);

这是我刚刚学来的、 --------------------编程问答-------------------- 用以下代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Connection conn = null;
PreparedStatement pstmt = null;
String sql;

try {


Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@stardust:1521:ORCL", "scott", "abc123");

sql = "insert into nk(LOCAL,DESTINATION,PRICE,TIME) values(?,?,?,?))";
pstmt = conn.prepareStatement(sql); 
pstmt.setString(1, LOCAL);
pstmt.setString(2, DESTINATION);
pstmt.setInt(3, PRICE);
pstmt.setString(4, sdf.format(TIME)); // 把date转换成特定格式的字符串
pstmt.executeUpdate();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
--------------------编程问答-------------------- 是只有分钟不对吗?
oracle中格式化分钟的是mi,不是mm
select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') from dual; --------------------编程问答-------------------- 不好意思,上面代码漏了点,加上下面的代码

   Date Time = new Date();
--------------------编程问答-------------------- ORACLE与JAVA的格式不一样
YYYY-MM-DD HH12:MI:SS --------------------编程问答-------------------- Java code  try { 
                                
            Class.forName("oracle.jdbc.driver.OracleDriver");   
       conn = DriverManager.getConnection("jdbc:oracle:thin:@stardust:1521:ORCL", "scott", "abc123");


  sql = "insert into nk(LOCAL,DESTINATION,PRICE,TIME) values(?,?,?,to_char(sysdate,'yyyy-MM-dd HH24:mi:ss'))";  
        pstmt = conn.prepareStatement(sql);                       /////这里生成的时间不对///
        pstmt.setString(1, LOCAL); 
    pstmt.setString(2, DESTINATION);  
    pstmt.setInt(3, PRICE);  
        pstmt.executeUpdate();   
                  } 
 
--------------------编程问答-------------------- 又仔细看了下你的代码,只要改一个地方就行了,代码如下:

 sql = "insert into nk(LOCAL,DESTINATION,PRICE,TIME) values(?,?,?,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'))"; 

数据库时间格式化是yyyy-mm-dd hh24:mi:ss,跟Java中的yyyy-MM-dd HH:mm:ss是不一样的,数据库是不认Java中的时间格式的。 --------------------编程问答-------------------- --------------------编程问答-------------------- 取得是服务器时间。
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,