Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串格式的日期插入到字段类型为日期的数据库中_Java_Mysql_Date_Prepared Statement - Fatal编程技术网

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

Java 将字符串格式的日期插入到字段类型为日期的数据库中,java,mysql,date,prepared-statement,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中的方法setD

我有一个字符串格式的日期

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)

答复如下:

您正在尝试使用一个接受
java.sql.Date
而不是
java.util.Date

欢迎收看节目,请注意这里回答的细节:

您正在尝试使用一个接受
java.sql.Date
而不是
java.util.Date


欢迎使用编程,请注意在数据库中插入时需要使用
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);

在数据库中插入时,需要使用
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);
使用java.sql.Date 日期类型 假设您有一个类型为java.util.Date的变量endDate,则进行如下转换:

 select1.setDate(1, new java.sql.Date(endDate.getTime());
使用java.sql.Date 日期类型 假设您有一个类型为java.util.Date的变量endDate,则进行如下转换:

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

select1.setDate(1,new java.sql.Date(fd.getTime())谢谢。。它起作用了:)
select1.setDate(1,新的java.sql.Date(fd.getTime())谢谢。。它起作用了:)当使用getTime()时,我会得到日期吗?你会在
long
中得到时间,你用它来创建新的
java.sql.date
。这是为了将表单
java.util.Date
转换为
java.sql.Date
@NicoVanBelle nice catch,我跳过了这一步:)使用getTime()时,我会得到日期吗?你会得到创建新
java.sql.Date
所用的
long
时间。这样做是为了将表单
java.util.Date
转换为
java.sql.Date
@NicoVanBelle nice catch,我跳过了这个:)