我很难将此日期插入moviesTbl
。我预计会在没有准备好的情况下这样做。当我尝试下面的时候,我收到了错误:
线程“main”中的异常 net.ucanaccess.jdbc.UcanaccessSQLException:用户缺少权限或 找不到对象:RELEASED
以下是代码:
String date = "2012-12-28";
java.sql.Date released = java.sql.Date.valueOf(date);
qtd.update("insert into moviesTbl (Title, ReleaseDate, Genre) VALUES ('Harry Potter', released, 'drama')");
如何在没有预备声明的情况下插入日期?
答案 0 :(得分:1)
引号内有变量released
。所以SQL错误就是说"我找不到释放的变量"。你需要将你的变量放在java中,这样就可以将值放入SQL中,否则SQL服务器正在寻找一个名为release的变量,但当然它不在那里,它在你的Java中。
String date = "2012-12-28";
qtd.update("insert into moviesTbl (Title, ReleaseDate, Genre) VALUES ('Harry Potter', '"+date+"', 'drama')");
正如@ user2067753所述,不同的数据库具有不同的格式来获取和设置日期时间格式。假设您正在使用MS SQL服务器,那么following this post可以执行类似这样的操作
java.util.Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2012-12-28");
java.text.SimpleDateFormat msSqlDateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
qtd.update("insert into moviesTbl (Title, ReleaseDate, Genre) VALUES ('Harry Potter', '"+msSqlDateFormat.format(date)+"', 'drama')");