一尘不染

Java日期-插入数据库

java

我需要找出一种将带有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值的字符串表示形式的语法不正确。

这是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')
,

谢谢


阅读 348

收藏
2020-03-22

共1个答案

一尘不染

当然,PreparedStatement这将使你的代码更好,但是要回答你的问题,你需要告诉DBMS Date的字符串表示形式。在Oracle中(你不指定数据库供应商的名称),Date使用以下TO_DATE()函数将字符串日期转换为:

INSERT INTO TABLE_NAME(
  date_column
)values(
  TO_DATE('06/06/2006', 'mm/dd/yyyy')
)
2020-03-22