繁体   English   中英

com.mysql.jdbc.MysqlDataTruncation:数据截断:不正确的日期时间值:''

[英]com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: ' '

我花了最后一个小时尝试使用Java通过时间戳将日期和时间插入时间戳的替代版本。

Date endDate = new Date();    
ptmt.setTimestamp(5, new java.sql.Timestamp(endDate.getTime()));

我的创建表语句是

CREATE TABLE Location (
  UserID varchar(50),
  Latitude DOUBLE,
  Longitude DOUBLE,
  Altitude DOUBLE,
  TimeInserted timestamp
);

是否有其他输入日期的方法。

在我准备好的语句中,我试图在字符串中包含now(),但是它在寻找参数。

String queryString = "INSERT INTO Location(UserID,Latitude,Longitude,Altitude,TimeInserted) VALUES(?,?,?,?,now());";

但是,搜索第5个参数时并不满意。

有任何想法吗?

我尝试将表格中的日期设为日期,并设法仅插入日期-但是我需要时间来排序。

谢谢

但是,搜索第5个参数时并不满意。

String queryString = "INSERT INTO Location(UserID,Latitude,Longitude,Altitude,TimeInserted) VALUES(?,?,?,?,now());";

您的查询字符串具有4个绑定参数,但此语句ptmt.setTimestamp(5, new java.sql.Timestamp(endDate.getTime())); 试图将long绑定到不存在的第5个参数

要记住的事情

public Timestamp(int year, int month, int date, int hour, int minute, int second, int nano)

不推荐使用。 而是使用构造函数Timestamp(long millis)

Date endDate= new Date();
java.sql.Timestamp eDate = new java.sql.Timestamp(enddate.getTime());
long endDatetime= eDate.getTime();

ptmt.setTimestamp(5, endDatetime);

尝试这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM