Java 如何存取MySQL datetime类型

1 在java中只有Date类型,这样数据存储到MySQL会出现问题,前台提交的数据,好比2018-03-20 17:30:59,后台用Date接受的时候,因为Date只精确到天,因此默认接收时间为2016-10-10 00:00:00,保存到mysql数据库以后,从新取出数据的时候又会发现,数据为2018-03-20 00:00:00.0,平白无故在后面多了一个.0。前端

 

2 解决方法java

① 提取数据mysql

若是要从MySQL中获取yyyy-MM-dd HH:mm:ss 日期格式,首先必须使用 rs.getTimestamp("insert_dt")方法,其中"insert_dt" 是数据库时间字段,类型为datetime;而后经过SimpleDateFormat 时间格式化类,将取出来的时间转为String类型sql

先来对比rs获取不一样日期时间格式的方法数据库

    System.out.println(rs.getDate("insert_dt"));
    System.out.println(rs.getTime("insert_dt"));
    System.out.println(rs.getTimestamp("insert_dt"));

  输出结果:post

2018-03-19
22:03:21
2018-03-19 22:03:21.0

  能够看到经过getTimestamp获取的日期格式最后还有一位数(2018-03-19 22:03:21.0),须要将rs.getTimestamp("insert_dt") 转为String类型spa

 String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(rs.getTimestamp("insert_dt"));
 System.out.println(timeStamp);

  输出结果:code

2018-03-19 21:51:57

 

  ② 存储数据orm

复制代码
    
        Date date = new Date();  
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //从前端或者本身模拟一个日期格式,转为String便可
        String dateStr = format.format(date);
            
        String sql="insert into t_pay_info(title,content,price,type_id,contact,phone,insert_dt)"
                    +"values(?, ?, ?, ?, ?, ?, ?);";
        String[] params = {"初中英语辅导","擅长初中英语辅导,可以与学生进行良好的沟通,稳步提高学生成绩","100", "3","Latinyrain","15185077780",dateStr};
        DBUtil.update(sql, params);
复制代码
相关文章
相关标签/搜索