【问题标题】:Java sql - How to insert TimeStamp into a mysql database including millisecondsJava sql - 如何将时间戳插入 mysql 数据库,包括毫秒
【发布时间】:2016-09-12 12:15:33
【问题描述】:

如何将 Java TimeStamp 对象转换为包含毫秒的 SQL 日期时间类型? 当我将我的 TimeStamp obj 插入数据库时​​,毫秒就消失了。

这是我将 String 转换为 Timestamp 对象的 Java 源代码:

import java.sql.Timestamp;
...
...
String timeStr = "2013-08-30 19:11:49.113";
Timestamp timeCreated = Timestamp.valueOf(timeStr);
timeCreated.toString(); //returns "2013-08-30 19:11:49.113"

我在 SQL 中的表定义:

CREATE TABLE `Event` (EventTimeStamp datetime NOT NULL);

这就是我将 TimeStamp 对象插入我的数据库的方式:

PreparedStatement psInsert;
Connection conn = ...
psInsert = conn
            .prepareStatement("INSERT INTO `Event` (EventTimeStamp) VALUES(?)");  

psInsert.setTimestamp(1, timeCreated);
psInsert.executeUpdate();

插入后时间戳被剪切,不再有毫秒数:

2013-08-30 19:11:49

谢谢

【问题讨论】:

  • 如何检查数据库中的值?
  • 在 MySql 工作台中:SELECT * FROM Event;
  • 什么版本的mysql?
  • 5.6.4 中添加了小数部分
  • 选择版本();说:5.5.49

标签: java mysql timestamp milliseconds


【解决方案1】:

您的数据库列datetime 没有毫秒的位置。你应该改用datetime(3)

【讨论】:

  • 这成功了!谢谢!但我需要为此解决方案安装最新的 mysql 版本。 @Lashane thx 提供更新我的 mysql 的建议。
猜你喜欢
  • 1970-01-01
  • 2013-06-22
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
  • 2016-03-06
相关资源
最近更新 更多