我正在使用Eclipse Juno,java和MySQL。
我想在将日期转换为null
之前检查日期是否为java.sql.Date
,然后再将其写入数据库。
以下作品提供的日期不为空:
java.sql.Date sqlPackIn = new java.sql.Date(dateBoxArchived.getValue().getTime());
所以我先检查null:
//TODO check for a null date and handle it for dateBoxArchived and dateBoxPackOut
java.sql.Date sqlDateArchived = new java.sql.Date(System.currentTimeMillis());
if (dateBoxArchived.getValue() != null){
sqlDateArchived = dateBoxArchived.getValue().getTime();
} else {
sqlDateArchived = null;
}
但是,我在Type mismatch can not convert from long to date
sqlDateArchived = (dateBoxArchived.getValue().getTime());
)
,建议的修复方法是将其更改为long。我无法找到解决此问题的任何改变。
非常感谢您的帮助。
此致
格林
答案 0 :(得分:3)
有些观点:
试试这个:
java.sql.Date sqlDateArchived = dateBoxArchived.getValue() == null ? null : new java.sql.Date(dateBoxArchived.getValue().getTime());
答案 1 :(得分:1)
Date.getTime()返回long
。大概你的sqlDateArchived
是Date
。您无法将long
放入Date
。要么将sqlDateArchived
更改为长,要么创建新的Date
,如:
sqlDateArchived = new Date(dateBoxArchived.getValue().getTime());
答案 2 :(得分:0)
在你的代码中
if (dateBoxArchived.getValue() != null){
sqlDateArchived = dateBoxArchived.getValue().getTime();
将最后一行转换为
sqlDateArchived = new Date(dateBoxArchived.getValue().getTime());`