java的数据类型与Mysql的时间类型对应表
Java | MySQL |
---|---|
java.sql.Date | DATE |
java.sql.Time | TIME |
java.sql.Timestamp | DATETIME |
java.sql.Timestamp | TIMESTAMP |
java.sql.Date | YEAR |
Date
方法一:传入java.sql.Date参数或者java.util.Date参数(推荐)
//方法一:传入java.sql.Date参数或者java.util.Date参数
Usertime usertime = new Usertime();
Date date = new Date(System.currentTimeMillis());
usertime.setTime1(date);
usertimeMapper.insertTime(usertime);
方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
//方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
Usertime usertime = new Usertime();
java.sql.Date date = new java.sql.Date(System.currentTimeMillis());
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//注意月和小时的格式为两个大写字母
String birthday = df.format(date);//将当前时间转换成特定格式的时间字符串,这样便可以插入到数据库中
usertime.setTime1(birthday);
usertimeMapper.insertTime(usertime);
方法三:传入符合时间格式的数字
Date不涉及小数点,因此没有 (数字设为Double类型,会出现小数点后精度丢失)的问题.很棒!
//方法三:传入符合时间格式的数字
Usertime usertime = new Usertime();
usertime.setTime1(20230215);
usertimeMapper.insertTime(usertime);
Time
方法一:传入java.sql.Time参数(推荐)
//传入java.sql.Time参数
Usertime usertime = new Usertime();
Time time = new Time(System.currentTimeMillis());
usertime.setTime2(time);
usertimeMapper.insertTime(usertime);
方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
//方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
Usertime usertime = new Usertime();
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss.S");//注意格式
java.util.Date date = new Date();//获得当前时间
String birthday = df.format(date);//将当前时间转换成特定格式的时间字符串,这样便可以插入到数据库中
usertime.setTime2(birthday);
usertimeMapper.insertTime(usertime);
方法三:传入符合时间格式的数字
当把数字设为Double类型的话,Time不会出现小数点后精度丢失问题.很棒!
//方法三:传入符合日期格式的数字
Usertime usertime = new Usertime();
usertime.setTime2(175621.886994);
usertimeMapper.insertTime(usertime);
DateTime
方法一:使用java.sql.Timestamp这个类来进行转换(推荐)
//方法一:使用java.sql.Timestamp这个类来进行转换(推荐)
Usertime usertime = new Usertime();
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
usertime.setTime3(timestamp);
usertimeMapper.insertTime(usertime);
方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
//方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
Usertime usertime = new Usertime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//注意月和小时的格式为两个大写字母
java.util.Date date = new Date();//获得当前时间
String birthday = df.format(date);//将当前时间转换成特定格式的时间字符串,这样便可以插入到数据库中
usertime.setTime3(birthday);
usertimeMapper.insertTime(usertime);
方法三:传入符合时间格式的数字
注意:把数字设为Double类型的话,会出现小数点后精度丢失问题.
比如传的是20230215211356.564682,结果数据库显示的是2023-02-15 21:13:56.566406
//方法三:传入符合时间格式的数字
Usertime usertime = new Usertime();
usertime.setTime3(20230215211356.564682);
usertimeMapper.insertTime(usertime);
Timestamp
方法一:使用java.sql.Timestamp这个类来进行转换(推荐)
java.util.Date date = new Date();//获得当前时间
Timestamp t = new Timestamp(date.getTime());//将时间转换成Timestamp类型,这样便可以存入到Mysql数据库中
方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//注意月和小时的格式为两个大写字母
java.util.Date date = new Date();//获得当前时间
String birthday = df.format(date);//将当前时间转换成特定格式的时间字符串,这样便可以插入到数据库中
方法三:传入符合时间格式的数字
注意:把数字设为Double类型的话,会出现小数点后精度丢失问题.
比如传的是20230215203345.886677,结果数据库显示的是2023-02-15 20:33:45.886719
//方法三:传入符合时间格式的数字
Usertime usertime = new Usertime();
usertime.setTime4(20230215203345.886677);
usertimeMapper.insertTime(usertime);
Year
虽然Mysql的YEAR对应java的java.sql.Date,但是我们不能直接传Date,sql会报错
方法一:用 Calendar.getInstance().get(Calendar.YEAR)得到year传参
//方法一:用 Calendar.getInstance().get(Calendar.YEAR)得到year传参
Usertime usertime = new Usertime();
int year = Calendar.getInstance().get(Calendar.YEAR);
System.out.println(year);
usertime.setTime5(year);
usertimeMapper.insertTime(usertime)
方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
//方法二:将Date时间转换成特定格式的字符串String,这样也能存入数据库
Usertime usertime = new Usertime();
SimpleDateFormat df = new SimpleDateFormat("yyyy");//注意月和小时的格式为两个大写字母
java.util.Date date = new Date();//获得当前时间
String birthday = df.format(date);//将当前时间转换成特定格式的时间字符串,这样便可以插入到数据库中
usertime.setTime5(birthday);
usertimeMapper.insertTime(usertime);
方法三:传入符合时间格式的数字
Year不涉及小数点,因此没有 (数字设为Double类型,会出现小数点后精度丢失)的问题.很棒!
//方法三:传入符合时间格式的数字
Usertime usertime = new Usertime();
usertime.setTime5(2023);
usertimeMapper.insertTime(usertime);
总结:
汇总详细细节结果详见excel表格-时间表格.
1.java给数据库5种时间类型赋值的传参有三种:
striing一各自对应的java的数据类型一符合各自时间格式的数字.
2.DateTime和Timestamp有当java传参为double数字时,写到数据库会有小数点精度丢失问题,而Date/Time/Year三种数据库类型不涉及这个问题.