java.sql.Date 、java.sql.Time 、 java.sql.Timstamp 都是继承了 java.util.Date 类
当你在用 pstmt.setXXX(位置,XXX对象)来向sql语句里添加时间的时候,是不一样的
看如下代码示例
package test;
import java.util.*;
public class TestSomeThing {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date = new Date();
System.out.println("java.util.Date:\t" + date);
long long_date = date.getTime();
System.out.println("返回的毫秒数:\t" + long_date);
java.sql.Date sqldate = new java.sql.Date(long_date);
java.sql.Time sqltime = new java.sql.Time(long_date);
java.sql.Timestamp sqltimestamp = new java.sql.Timestamp(long_date);
System.out.println("java.sql.Date:\t" + sqldate);
System.out.println("java.sql.Time:\t" + sqltime);
System.out.println("java.sql.Timestamp:\t" + sqltimestamp);
}
}
输出:
java.util.Date: Tue May 21 21:57:34 CST 2019
返回的毫秒数: 1558447054898
java.sql.Date: 2019-05-21
java.sql.Time: 21:57:34
java.sql.Timestamp: 2019-05-21 21:57:34.898
一目了然
如果你用 pstmt.setDate(1,sqldate)
那么最后数据库表里的 datatime 列的数据长这样
只有你用 pstmt.setTimestamp(1,sqltimestamp)
那么最后数据库表里的 datatime 列的数据长这样