Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 如何将日期插入mysql?_Java_Mysql_Date_Jdbc_Java.util.date - Fatal编程技术网

Java 如何将日期插入mysql?

Java 如何将日期插入mysql?,java,mysql,date,jdbc,java.util.date,Java,Mysql,Date,Jdbc,Java.util.date,我试图在mySql数据库中插入一个日期。我接受date作为字符串,并将其解析为util.date,然后将其转换为sql.date,然后将其插入数据库。这是我的密码 SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); String mydate=dsd.getDoa(); Date mydate2=format.parse(mydate); java.sql.Date sqlDate; sqlDate = new java.

我试图在mySql数据库中插入一个日期。我接受date作为字符串,并将其解析为util.date,然后将其转换为sql.date,然后将其插入数据库。这是我的密码

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); 
String mydate=dsd.getDoa();
Date mydate2=format.parse(mydate);
java.sql.Date sqlDate;
sqlDate = new java.sql.Date(mydate2.getTime());
System.out.println("Date"+sqlDate.getDate()+"Month"+sqlDate.getMonth()+"Year"+sqlDate.getYear());

....

int i=st.executeUpdate("insert into device_sales_details values("+sqlDate+")); 
错误如下:

com.mysql.jdbc.MysqlDataTruncation:数据截断:第1行“设备\销售\详细信息\ DOA”列的日期值“1980”不正确

Sysout
按如下方式打印输入
22/12/2014

日期11年11月22日114
如何解决这个问题,有人能帮我吗。

使用。使用字符串连接来创建通过JDBC发送的SQL代码几乎是不正确的

PreparedStatement ps = connection.prepareStatement("insert into device_sales_details values(?)");
ps.setDate(1, sqlDate);
int i = ps.executeUpdate();
有关不使用字符串连接的详细信息,请参见此处:



另外,通常最好在执行插入时指定列,例如:
insert-into-device\u-sales\u-details(columnName)值(?)

数据库中的日期是如何存储的?mysql中的
desc device\u sales\u details
的输出是什么?@VimalBera在desc中该字段的类型是date关于标题问题,如果mysql中的日期列是date类型,则不需要转换java.sql.date sqlDate;。您应该直接将java.util.Date值插入mysql。@Harry我正在使用
sqlyog
,是的,它显示了
2014-10-10
日期。是的,谢谢,它解决了我的问题,我尝试了
PreparedStatement
,但我不明白为什么我的
sysout
会有这种输出。