Mysql数据库的时间(2)一(如何用代码插入时间)

java的数据类型与Mysql的时间类型对应表

JavaMySQL
java.sql.DateDATE
java.sql.TimeTIME
java.sql.TimestampDATETIME
java.sql.TimestampTIMESTAMP
java.sql.DateYEAR

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三种数据库类型不涉及这个问题.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值