zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Spark SQL join的三种实现方式
    BitMap算法
    mysql索引建立原则
    Java常用容器对比
    如何正确的停止一个线程
    读书笔记——凤凰架构
    Linux command 整理
    禁足期间,好好学习,好好休息
    Oracle SQL Update
    Shell 知识总结
  • 原文地址:https://www.cnblogs.com/bluepoint2009/p/mysql-date-insert-update.html
Copyright © 2011-2022 走看看