如何将字符串日期插入mysql数据库日期字段

时间:2011-09-07 14:28:31

标签: java

我正在尝试将我的Java程序中的日期字符串插入到我的一个具有日期类型的MySQL数据库字段中。

package events;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Date;
/**
*
* @author mewq
*/
public class ConDb {
public static void main(String[] args){
String description = null;
try{
Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/tangkilikan", "user=root", "password=tangkilik");

Statement stat = (Statement) conn.createStatement();

String eventName = "Imba meeting";
String Address = "Zamora, Cabarroguis, Quirino";
Date date = '2011-09-09'; 
String description = "meeting";


String insert = "insert into events values ('" + eventName + "', '" + Address + "', ' + date + ', '" + description + "')";


stat.executeUpdate(insert);

} catch(Exception e) {

}

}

}

4 个答案:

答案 0 :(得分:4)

Date date = '2011-09-09'; 

不会编译。将日期插入具有日期类型的数据库表的正确方法是使用PreparedStatement

String dateString = "2011-09-09";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = formatter.parse(dateString);

String insert = "insert into events values (?, ? , ? , ?)";
PreparedStatement ps = conn.prepareStatment(insert);
ps.setString(1, eventName);
ps.setString(2, Address);
ps.setDate(3, myDate);
ps.setString(4, description);

ps.executeUpdate();

答案 1 :(得分:2)

尝试使用SimpleDateFormat

DateFormat formatter = new SimpleDateFormat("MM/dd/yy");
Date date = (Date)formatter.parse("05/15/11");

并使用生成的日期作为插入。

答案 2 :(得分:1)

作为惯例,您的变量/字段/成员名称不应以大写字母开头,因此Address实际上应为address

至于您的问题,在您发布的代码中创建insert字符串存在问题;在尝试连接你的date字段之前,你没有用双引号(“)结束字符串,所以你不会最终得到你期望的字符串。请尝试以下代码:

String insert = "insert into events values ('" + eventName + "', '" + Address + "', '" + date + "', '" + description + "')";

答案 3 :(得分:0)

mysql日期时间格式为'2013-01-01 01:00:00'或YYYY-MM-DD HH:MM:SS确保你有引号或刻度..

- >尝试将该日期对象转换为字符串。

在没有更多信息的情况下我能做到最好。