Java 在mysql数据库的datetime列中插入日期和时间时,将插入日期,但时间为00-00-00

Java 在mysql数据库的datetime列中插入日期和时间时,将插入日期,但时间为00-00-00,java,mysql,jdbc,Java,Mysql,Jdbc,请参见java.sql.Date: 一个围绕毫秒值的薄包装器,允许JDBC识别 这是一个SQL日期值 如果看到日期类型,则仅表示日期而不是时间部分。 您必须使用java.sql.Timestamp。给你 围绕java.util.Date的精简包装器,允许JDBCAPI 将其标识为SQL时间戳值 因此,您的代码应该如下所示: Calendar cal = Calendar.getInstance(); PreparedStatement pstmt = conn.prepareStateme

请参见
java.sql.Date

一个围绕毫秒值的薄包装器,允许JDBC识别 这是一个SQL日期值

如果看到日期类型,则仅表示日期而不是时间部分。 您必须使用
java.sql.Timestamp
。给你

围绕java.util.Date的精简包装器,允许JDBCAPI 将其标识为SQL时间戳值

因此,您的代码应该如下所示:

Calendar cal = Calendar.getInstance();

PreparedStatement   pstmt = conn.prepareStatement("insert into organisation (org_id,name,description,logo,created_date,created_by,is_status) values(?,?,?,?,?,?,?)");
pstmt.setInt(1, 1);
pstmt.setString(2, name);
pstmt.setString(3, description);
pstmt.setDate(4, new java.sql.Date(cal.getTimeInMillis()));

int count = pstmt.executeUpdate();
请参见
java.sql.Date

一个围绕毫秒值的薄包装器,允许JDBC识别 这是一个SQL日期值

如果看到日期类型,则仅表示日期而不是时间部分。 您必须使用
java.sql.Timestamp
。给你

围绕java.util.Date的精简包装器,允许JDBCAPI 将其标识为SQL时间戳值

因此,您的代码应该如下所示:

Calendar cal = Calendar.getInstance();

PreparedStatement   pstmt = conn.prepareStatement("insert into organisation (org_id,name,description,logo,created_date,created_by,is_status) values(?,?,?,?,?,?,?)");
pstmt.setInt(1, 1);
pstmt.setString(2, name);
pstmt.setString(3, description);
pstmt.setDate(4, new java.sql.Date(cal.getTimeInMillis()));

int count = pstmt.executeUpdate();

使用时间戳而不是日期使用时间戳而不是日期