我有这段代码,但它不起作用。我有错误消息:
“com.mysql.jdbc.MysqlDataTruncation:数据截断:日期时间值不正确:第 1 行的列“Datum_zalozeni”的“”
pstmt = conn.prepareStatement(INSERT);
Timestamp ts = u.getDatum_zalozeni();
System.out.println(ts);
pstmt.setTimestamp(1, ts);
pstmt.setInt(2, u.getId_klient());
pstmt.executeUpdate();
我的数据库是:
CREATE TABLE Ucet
(
Id_Uctu Int NOT NULL auto_increment primary key,
Datum_zalozeni Timestamp NOT NULL,
Id_klient Int NOT NULL
)
;
哪里出错了?我认为代码是正确的。
最佳答案
我有一个生成系统时间戳的代码。它设置 0 代替 979。看看。
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TimestampTest
{
public static void main(String[] args)
{
try
{
System.out.println("System Date: " + generateTimestamp("yyyy-MM-dd HH:mm:ss"));
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static Timestamp generateTimestamp(String format)
{
Timestamp timestamp = null;
try
{
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
Date date = dateFormat.parse(generateDate(format));
timestamp = new Timestamp(date.getTime());
}
catch (ParseException e)
{
e.printStackTrace();
}
return timestamp;
}
public static String generateDate(String format)
{
Date date = Calendar.getInstance().getTime();
DateFormat dateFormat = new SimpleDateFormat(format);
return (dateFormat.format(date));
}
}
关于Java 时间戳到 MySQL 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29864634/