• MySQL数据库Date型数据插入问题


    MySQL数据库中,Date型数据插入问题,总是提示如下错误:

    “java.util.Date cannot be cast to java.sql.Date”

    解决办法:                                                           

    1、首先,获取Date型数据

    1 Date entry_date; //这是java.util.Date类型的
    2 String entryDateString = "2013-01-01";
    3 try{
    4    SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    5    entry_date = sDateFormat.parse(entryDateString);
    6 }catch (ParseException e){
    7    System.out.println("ParseException:"+e.getMessage());
    8 }

    2、将Java类型的Date数据转换为SQL类型的数据(java.util.Date --> java.sql.Date) 

    1 prepareStatement.setDate(new java.sql.Date(entry_date.getTime()));
    2 prepareStatement.executeUpdate();

    3、注意:不同类型数据包含的时间信息不同                                  

    • java.util.Date 型数据包含 年月日和时分秒等信息;
    • java.sql.Timestamp 型数据包含 年月日和时分秒,以及毫秒等信息;
    • java.sql.Date 型数据只包含年月日信息;
    • java.sql.Time 型数据只包含时分秒信息;

    所以,上述不同类型数据间的转换,最好使用getTime()获取从1970年1月1日,00:00:00开始的毫秒数,然后再进行转换。否则,会出现错误。

    实例如下:

     1 java.util.Date d = new java.util.Date();
     2 java.sql.Date d1 = new java.sql.Date(d.getTime());
     3 java.sql.Time t1 = new java.sql.Time(d.getTime());
     4 java.util.Date dd = new java.util.Date(d1.getTime());//+t1.getTime());
     5 System.out.println("date d:" + d);
     6 System.out.println("date d1: " + d1);
     7 System.out.println("time t1: " + t1);
     8 System.out.println("datetime dd: " + dd);
     9 
    10 java.sql.Timestamp ts = new java.sql.Timestamp(d.getTime());
    11 System.out.println("timestamp ts:" + ts);//含有毫秒数
    12 long lms = ts.getTime();
    13 java.sql.Date date = new java.sql.Date(lms);
    14 java.sql.Time time = new java.sql.Time(lms);
    15 System.out.println("timestamp ts:" + date + " " + time); //无毫秒数

    显示结果如下:

    1 date d:Mon Aug 26 12:13:31 CST 2013
    2 date d1: 2013-08-26
    3 time t1: 12:13:31
    4 datetime dd: Mon Aug 26 12:13:31 CST 2013
    5 timestamp ts:2013-08-26 12:13:31.667
    6 timestamp ts:2013-08-26 12:13:31
  • 相关阅读:
    Bundle类
    intent.putExtra()方法参数详解
    6级技巧(一)
    6级核心词汇
    安卓应用运营知识:VersionCode和VersionName
    关于HTML、XHTML、CSS、XML的区别
    SQL记录-Linux CentOS配置ORACLE 12c
    Spark记录-Scala多线程
    Spark记录-Scala异常与处理
    Spark记录-Scala类和对象
  • 原文地址:https://www.cnblogs.com/bluepoint2009/p/mysql-date-insert-update.html
Copyright © 2020-2023  润新知