gpt4 book ai didi

java - 为什么我会收到 "com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value:"错误?

转载 作者:行者123 更新时间:2023-11-29 12:13:24 26 4
gpt4 key购买 nike

我正在尝试将OPENSHIFT表中的created_at列时间created_at DATETIME NOT NULL设置为我的哥本哈根本地时间。如何将 openshift 服务器中的时间设置为本地时间?目前,我收到此错误 com.mysql.jdbc.MysqlDataTruncation: Data truncation: In Correct datetime value: '16.05.2015 22:28:13' for columns 'created_at' at row 1prep.executeQuery();

感谢任何帮助。

stt.execute("CREATE TABLE IF NOT EXISTS bus"
+ "(id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,"
+ "mac VARCHAR(30) NOT NULL UNIQUE,"
+ "route int(11) NOT NULL,"
+ "latitude FLOAT(10,6) NOT NULL,"
+ "longitude FLOAT(10,6) NOT NULL,"
+ "created_at DATETIME NOT NULL )");

insert_into_table方法:

private void insert_into_table(String macD, int routeD, double latD,
double longD, Connection con) throws SQLException {

Calendar calendar = new GregorianCalendar();
TimeZone timeZone = TimeZone.getTimeZone("Europe/Berlin");
calendar.setTimeZone(timeZone);
String time = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss")
.format(calendar.getTime());

PreparedStatement prep = con
.prepareStatement("REPLACE INTO bus(mac, route, latitude, longitude, created_at)"
+ "VALUES( ?, ?, ? , ?,? )");
prep.setString(1, macD);
prep.setInt(2, routeD);
prep.setDouble(3, latD);
prep.setDouble(4, longD);
prep.setString(5, time);
prep.executeQuery();
}

最佳答案

显然,MySQL 服务器无法识别应用程序计算机上的默认日期/时间格式。最简单的解决方法是使用数据库来设置时间。

一种方法是:

PreparedStatement prep = con
.prepareStatement("REPLACE INTO bus(mac, route, latitude, longitude, created_at)"
+ "VALUES( ?, ?, ? , ?, now())");

更好的方法是定义created_at,使其具有插入时间的默认值。然后您可以将其完全排除在replace/insert之外。这个process在这里进行了解释。一些详细信息取决于您使用的 MySQL 版本。

关于java - 为什么我会收到 "com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value:"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30280494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com