Java PreparedStatement sql setDate
我有一个疑问:Java PreparedStatement sql setDate,java,sql,date,Java,Sql,Date,我有一个疑问: String sql ="select col1,col2,col3 from table where tstamp between '01/01/2014 00:00' and '01/01/2014 23:59'" ; 我想使用PreparedStatement来setDate如下: String sql = "select col1,col2,col3 from table where tstamp between ? and ? " ; PreparedStateme
String sql ="select col1,col2,col3 from table where tstamp between '01/01/2014 00:00' and '01/01/2014 23:59'" ;
我想使用PreparedStatement
来setDate
如下:
String sql = "select col1,col2,col3 from table where tstamp between ? and ? " ;
PreparedStatement p = connection.prepareStatement(sql);
p.setDate(1,…)代码>
我也不知道怎么做请帮忙
我尝试了新的日期(int,int,int)
构造函数,但它没有设置小时和分钟。问题是java.sql中的对象与java.util中的对象不同
如果使用p.setDate(1,…);使用java.util.Date,您将失去时间。
一种可能的解决方案是将java.sql中的日期作为参数传递给Usejava.sql.Date
try{
sql = "select col1,col2,col3 from table where tstamp between ? and ? ;
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, /**Your Date**/);
pstmt.setString(2, /**Your Date**/);
rs = pstmt.executeQuery();
.
.
.
}catch (Exception e) {
e.printStackTrace();
}finally{
sql = null;
if(rs != null){
rs.close();
rs = null;
}
if(pstmt != null){
pstmt.close();
pstmt = null;
}
if(conn != null){
conn.close();
conn = null;
}
}
对于JDBC有三种时态类型,都在java.sql
包中:
日期,其中包含没有时间的日期
时间,它包含一个没有日期的时间
时间戳,包含日期和时间
因此,您需要使用,以及PreparedStatement
的setTimestamp()
方法
要从字符串构造时间戳实例,请使用SimpleDateFormat
将字符串解析为java.util.Date
对象,然后通过传递从该java.util.Date
对象获得的毫秒来构造时间戳。可能重复的