如何将日期插入mysql?

Rag*_*ghu 2 java mysql date jdbc java.util.date

我试图将一个日期插入mySql数据库.我接受日期作为字符串并将其解析为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+")); 
Run Code Online (Sandbox Code Playgroud)

错误如下,

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '1980' for column 'device_sales_details_DOA' at row 1

在Sysout为遵循输入打印22/12/2014

Date22Month11Year114 如何解决这个问题,请任何人帮助我.

T.J*_*der 5

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

PreparedStatement ps = connection.prepareStatement("insert into device_sales_details values(?)");
ps.setDate(1, sqlDate);
int i = ps.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

有关不使用字符串连接的更多信息,请访问:http://bobby-tables.com


另外,通常最好在插入时指定列,例如: insert into device_sales_details (columnName) values (?)