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

数据截断:错误的日期时间值:“

益富
2023-03-14
问题内容

谁能通过示例JSP代码帮助我,以通过JDBC在MySql数据库中存储日期?当我尝试执行下面给出的代码时,出现以下异常:

com.mysql.jdbc.MysqlDataTruncation:数据截断:不正确的datetime值:第1行的’date’列的’‘

如何克服这个问题?以下是我的代码:

Connection con = null;

String StaffName = request.getParameter("StaffName");
// String subcode = request.getParameter("subcode");
String hourId = request.getParameter("hourId");
if (hourId == null)
    hourId = "";
String day = request.getParameter("day");
if (day == null)
    day = "";
String date = request.getParameter("date");
try {
    Class.forName("com.mysql.jdbc.Driver");
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/StaffAllocation", "root", "success");

    // PreparedStatement stat = con.PrepareStatement();
    String updateString = "INSERT INTO tblstaffallocation (StaffName,hourId,daysId,date) VALUES (?,?,?,?)";
    PreparedStatement preparedStatement = con.prepareStatement(updateString);

    preparedStatement.setString(1, StaffName);
    preparedStatement.setInt(2, 0);
    preparedStatement.setInt(3, 0);
    preparedStatement.setString(4, date);
} catch (Exception e) {
    out.print(e);
}

问题答案:

要将日期设置为准备好的语句,您需要更改值的类型:

String date = request.getParameter("date");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); // your template here
java.util.Date dateStr = formatter.parse(date);
java.sql.Date dateDB = new java.sql.Date(dateStr.getTime());

现在将String date转换为java.sql.Date并使用另一种方法:

preparedStatement.setDate(4,dateDB);


 类似资料:
  • 我编写了一个函数,用于在给定范围之前或之后截断数据。我传入一个日期元组,位置1是开始日期,位置2是结束日期。 我如何也可以选择指定截断b4和b4之后的时间和日期-我将如何使用我的代码来做到这一点?*) 此外-我一直在我的数据上得到一个错误,说: 我使用: 我的日期元组: 这是数据集的my df.head(): 我已经运行了下面的程序来检查索引中的dupilcates,它返回NAT,所以我不确定为什

  • 问题内容: 我有一个日期时间格式的字段,当日期更好并且与数据库的其余部分更一致时,我想进行转换。无论如何,时间部分都是00:00:00。 如何在MySQL中做到这一点? 谢谢。 问题答案: 如果要在-Statement中使用,请使用运算符: 如果要在结构上更改表,只需将数据类型更改为(当然,只有在不影响依赖于此字段的应用程序的情况下,才这样做)。 两者都将消除时间部分。

  • 我有一个熊猫的数据帧 带索引 但当我想设置该列的索引时,我得到了如下错误(我最初想设置多列索引,出现了错误,然后试图从中创建其他数据帧,其他列作为索引(ok)要创建新框架,请将索引设置为“日期-时间”列,返回-相同错误)“日期时间”看起来不像特殊的关键字,而且该列现在是索引。为什么会出错? KeyError回溯(最近一次调用上次)C:\ProgramData\Anaconda3\lib\site

  • 我以为问题首先是与Postgres有关,但后来我发现不是。当我检查终端时,显示的是正确的日期。又名2021-04-15。但是,当我使用相同的查询将其返回到我的前端时,日期和时间是错误的。(终端中没有时间戳,但返回结果前端中有一个。这是我返回前端的代码。 我的前端代码如下。 我的前端正在以以下格式返回数据-2021-04-14T23:00:00.000Z。它目前是英国的第15届,它(在撰写本报告时)

  • 问题内容: 1. 当我在Windows上运行此MYSQL语法时,它正常运行: 但是,当我尝试在Linux上运行此代码时,出现错误: 2. 在Windows上,大小写不敏感。并且都被认为是相同的。但是在linux上,情况是敏感的。 Linux的配置: MySQL 5.5.33,phpMyAdmin:4.0.5,PHP:5.2.17 Windows的配置: MySql:5.6.11,phpMyAdmi

  • 问题内容: 我有一个包含日期和时间信息的Java Date对象。我想编写一种方法来截断时间信息,将小时-分钟-秒数截断,所以只剩下日期了。 输入示例: 预期产量: 你有小费吗?我试图做这样的事情: 但我遇到了时区问题。 问题答案: 该 建议 的方式做日期/时间操作是使用对象: