将字符串格式的日期插入到字段类型为Date的数据库中

时间:2017-06-14 12:01:44

标签: java mysql date prepared-statement

我的日期格式为字符串。

String from_date = "2016-09-09";

我需要使用PreparedStatement插入具有日期类型字段的数据库。我是按照以下方式完成的。

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date fd = formatter.parse(from_date);
select1.setDate(1, fd);

但它显示错误为

  

PreparedStatement类型中的方法setDate(int.java.sql.Date)不适用于参数(int,java.util.Date)

3 个答案:

答案 0 :(得分:4)

在数据库中插入时需要使用java.sql.Date。请尝试以下方法:

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date fd = formatter.parse(from_date);
java.sql.Date sqlDate = new java.sql.Date(fd.getTime());
select1.setDate(1, sqlDate);

答案 1 :(得分:1)

在这里回答:Type mismatch: cannot convert from java.util.Date to java.sql.Date

您正在尝试使用接受java.sql.Date而非java.util.Date

的方法

欢迎使用编程,请注意细节

答案 2 :(得分:1)

使用java.sql.Date

java.util.Date

假设您有一个类型为java.util.Date的变量endDate,则可以进行转换:

 select1.setDate(1, new java.sql.Date(endDate.getTime());