zoukankan      html  css  js  c++  java
  • ClassCastException: java.util.Date cannot be cast to java.sql.Date

    解决办法

        /**
         * 单个方法,作用,根据输入的day:yyyy-mm-dd格式的字符日期,将数据库中的该天所有数据更新为0
         * 0表示假期
         * @param day
         * @throws SQLException 
         * @throws ParseException 
         */
        public void UpdateDayTypeByLeaseDay(String day) throws SQLException, ParseException{
            //UPDATE NYC_TRIP_SUM_BYHOUR SET daytype='0' where leaseday='2016-12-31'
            String sql="UPDATE NYC_TRIP_SUM_BYHOUR SET daytype='0' where leaseday=?";
            //建立连接
            Connection conn=daoUtil.getConnection();
            PreparedStatement preStmt=conn.prepareStatement(sql);
    
    //      SimpleDateFormat sdfDay=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟
    
            //先将字符日期转为util日期
            SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
            Date dayDateUtil=df.parse(day);
            System.out.println("转换成Util日期"+dayDateUtil);
            //由于util在sql中不符,再转为sql日期
            java.sql.Date dayDateSql = new java.sql.Date(dayDateUtil.getTime());
            System.out.println("转换成sql日期"+dayDateSql);
    
            //将日期参数传入
            preStmt.setDate(1, dayDateSql);
            preStmt.executeQuery();
            //关闭连接资源
            preStmt.close();
            conn.close();
    
        }

    关键在于中间的几行:

    //先将字符日期转为util日期
    SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
    Date dayDateUtil=df.parse(day);
    System.out.println("转换成Util日期"+dayDateUtil);
    
    //由于util在sql中不符,再转为sql日期
    java.sql.Date dayDateSql = new java.sql.Date(dayDateUtil.getTime());
    System.out.println("转换成sql日期"+dayDateSql);
  • 相关阅读:
    Django~1
    Codeforces Round#201(div1) D. Lucky Common Subsequence
    ACdream原创群赛(18)のAK's dream题解
    区间dp
    部署AlwaysOn第三步:集群资源组的健康检测和故障转移
    Join 和 App
    SSRS配置1:凭证和邮件
    巧用Alt 键
    把Excel的数据导入到数据库
    jvm系列:Java GC 分析
  • 原文地址:https://www.cnblogs.com/lx06/p/15739812.html
Copyright © 2011-2022 走看看