我试图使用java.util.Date作为输入,然后用它创建查询-所以我需要一个java.sql.Date。
我惊讶地发现它不能隐式或显式地进行转换——但我甚至不知道如何做到这一点,因为Java API对我来说仍然相当新。
我试图使用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语句中传入此日期
其他回答
我是一个新手:在四处奔波之后,这是有效的。思想可能有用
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
试试这个
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;
}
在我的情况下,从JXDatePicker (java日历)选择日期,并将其存储在数据库中的SQL日期类型,下面的工作很好。
java.sql.Date date = new java.sql.Date(pickedDate.getDate().getTime());
where pickedDate是JXDatePicker的对象
我正在尝试以下代码,工作得很好。
java.util.Date utilDate = new java.util.Date();java.sql.date sqlDate = new java.sql.Date(utilDate);
这个函数将返回一个从java日期对象转换而来的SQL日期。
public java.sql.Date convertJavaDateToSqlDate(java.util.Date date) {
return new java.sql.Date(date.getTime());
}