我需要找出一种将带有java.util.Date字段的记录插入数据库的方法,但我陷入了困境。
java.util.Date
有谁知道我该怎么做?现在我有类似的东西。
java.util.Date myDate = new java.util.Date("01/01/2009"); sb.append("INSERT INTO USERS"); sb.append("(USER_ID, FIRST_NAME, LAST_NAME, SEX, DATE) "); sb.append("VALUES ( "); sb.append(" '" + userId + "'"); sb.append(", '" + myUser.GetFirstname() + "' "); sb.append(", '" + myUser.GetLastname() + "' "); sb.append(", '" + myUser.GetSex() + "' "); sb.append(", '" + myDate + "'"); sb.append(")"); Util.executeUpdate(sb.toString());
但是,当我运行类似这样的命令时,出现错误:datetime值的字符串表示形式的语法不正确。
datetime
这是sql语句的样子:
INSERT INTO USERS (USER_ID , FIRST_NAME , LAST_NAME , SEX , CRDATE) VALUES ( 'user' , 'FirstTest' , 'LastTest' , 'M' , 'Thu Jan 01 00:00:00 CST 2009')
,
谢谢
当然,PreparedStatement这将使你的代码更好,但是要回答你的问题,你需要告诉DBMS Date的字符串表示形式。在Oracle中(你不指定数据库供应商的名称),Date使用以下TO_DATE()函数将字符串日期转换为:
PreparedStatement
DBMS Date
Oracle
Date
TO_DATE()
INSERT INTO TABLE_NAME( date_column )values( TO_DATE('06/06/2006', 'mm/dd/yyyy') )