当前位置: 首页 > 面试题库 >

Java日期-插入数据库

姜旭
2023-03-14
问题内容

我需要找出一种将带有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')
,

谢谢


问题答案:

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

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


 类似资料:
  • 我正在尝试使用Java jdbc连接在mysql数据库中插入一行。。。。 这是我的密码, } 当我尝试运行代码时,我得到类强制转换异常。。。非常感谢您的帮助。这是我的学生。java类 } 当我运行代码时,我得到以下错误:线程“main”java中出现异常。lang.ClassCastException:类java。util。日期不能转换为java类。sql。jdbcsample中的日期(java.

  • 问题内容: 我有一个关于将PHP中的日期插入Oracle DB的问题 所以我在PHP中有这个 问题是,我没有在数据库中插入任何新记录。DELIVERY_DATE的数据类型是 问题答案: 几天前,我遇到了同样的问题,这是日期格式问题。所以我更改了日期格式,它对我有用。您可以尝试下面的代码并对其进行测试,如果它可以工作,则可以根据需要修改代码。

  • insertDate(int $row, int $column, int $timestamp[, string $dateFormat = 'yyyy-mm-dd hh:mm:ss', resource $formatHandler]) int $row $excel = new \Vtiful\Kernel\Excel($config); ​ $dateFile = $excel->fil

  • 在我的本地设置中,我使用一个简单的H2数据库。“托管”解决方案将有另一个(类似但不相同)数据库。 我需要将最大可能的日期插入到DateTime列中。我试图用 但是,这会导致列中出现-169104626-12-11 20:08:15.9999999。 关于如何插入最长可能日期,是否有可靠的选项?

  • 我希望用户能够手动输入将保存到数据库的日期。我的MonthType看起来像: 我的控制器看起来像: 在存储库中,我有: 当我试图保存记录我得到一个错误:一个异常发生在执行'插入到月份(名称,日期开始,日期结束,upper_limit,user_id,保留)值 (?, ?, ?, ?, ?, ?)'使用参数["2012年6月",{"date":"2012-06-01 00:00:00.000000"

  • 注意:在MySQL表中,此列的数据类型我选择了日期数据类型 我只是有问题的日期部分查询插入日期: