我试图使用java.util.Date作为输入,然后用它创建查询-所以我需要一个java.sql.Date。

我惊讶地发现它不能隐式或显式地进行转换——但我甚至不知道如何做到这一点,因为Java API对我来说仍然相当新。


当前回答

如果你在Mysql中使用一个日期列,可以传递这个日期的字符串表示

所以我使用DateFormatter类格式化它,然后将它设置为sql语句或准备语句中的字符串

下面是代码说明:

private String converUtilDateToSqlDate(java.util.Date utilDate) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String sqlDate = sdf.format(utilDate);
    return sqlDate;
}

字符串日期= converUtilDateToSqlDate(otherTransaction.getTransDate());

//然后在SQL语句中传入此日期

其他回答

试试这个

public static String toMysqlDateStr(Date date) {
    String dateForMySql = "";
    if (date == null) {
        dateForMySql = null;
    } else {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateForMySql = sdf.format(date);
    }

    return dateForMySql;
}

首先格式化java.util.Date。然后使用格式化的日期在java.sql.Date中获取日期

java.util.Date utilDate = "Your date"
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
final String stringDate= dateFormat.format(utilDate);
final java.sql.Date sqlDate=  java.sql.Date.valueOf(stringDate);

在我的情况下,从JXDatePicker (java日历)选择日期,并将其存储在数据库中的SQL日期类型,下面的工作很好。

java.sql.Date date = new java.sql.Date(pickedDate.getDate().getTime());

where pickedDate是JXDatePicker的对象

这里的例子转换Util日期到Sql日期和ya这是一个例子,我在我的项目中使用的可能对你也有帮助。

java.util.Date utilStartDate = table_Login.getDob();(orwhat ever date your give form obj)
java.sql.Date sqlStartDate = new java.sql.Date(utilStartDate.getTime());(converting date)

我是一个新手:在四处奔波之后,这是有效的。思想可能有用

     String bufDt =  bDOB.getText();  //data from form
     DateFormat dF = new SimpleDateFormat("dd-MM-yyyy"); //data in form is in this format
     Date bbdt = (Date)dF.parse(bufDt);  // string data is converted into java util date
     DateFormat dsF = new SimpleDateFormat("yyyy-MM-dd"); //converted date is reformatted for conversion to sql.date
     String ndt = dsF.format(bbdt); // java util date is converted to compatible java sql date
     java.sql.Date sqlDate=  java.sql.Date.valueOf(ndt);  // finally data from the form is convered to java sql. date for placing in database