• 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 解决方法

    ① 提取数据

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

    先来对比rs获取不同日期时间格式的方法

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

      输出结果:

    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类型

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

      输出结果:

    2018-03-19 21:51:57

      ② 存储数据

    复制代码
        
            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);
    复制代码
  • 相关阅读:
    UIKit, AppKit, 以及其他API在多线程当中的使用注意事项
    BOZJ-2590 优惠券
    P3620 [APIO/CTSC 2007] 数据备份
    矩阵乘法与快速幂
    CodeForces
    AtCoder
    CodeForces
    考试成绩和学号的(结构体)排序
    CodeForces
    Atcoder Beginner Contest 092 —— C题
  • 原文地址:https://www.cnblogs.com/eaglesour/p/9478770.html
Copyright © 2020-2023  润新知