为了使我们的代码更加标准,我们被要求更改所有将 SQL 变量硬编码为准备好的语句的位置,并改为绑定变量。
然而我面临着一个问题setDate()
.
这是代码:
DateFormat dateFormatYMD = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
DateFormat dateFormatMDY = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date now = new Date();
String vDateYMD = dateFormatYMD.format(now);
String vDateMDY = dateFormatMDY.format(now);
String vDateMDYSQL = vDateMDY ;
java.sql.Date date = new java.sql.Date(0000-00-00);
requestSQL = "INSERT INTO CREDIT_REQ_TITLE_ORDER (REQUEST_ID," +
" ORDER_DT, FOLLOWUP_DT) " + "values(?,?,?,)";
prs = conn.prepareStatement(requestSQL);
prs.setInt(1,new Integer(requestID));
prs.setDate(2,date.valueOf(vDateMDYSQL));
prs.setDate(3,date.valueOf(sqlFollowupDT));
执行 SQL 时出现此错误:
java.lang.IllegalArgumentException
at java.sql.Date.valueOf(Date.java:138)
at com.cmsi.eValuate.TAF.TAFModuleMain.CallTAF(TAFModuleMain.java:1211)
我应该使用setString()
而是用一个to_date()
?
❐ Using java.sql.Date
如果您的表有一列类型DATE
:
-
java.lang.String
方法java.sql.Date.valueOf(java.lang.String) http://docs.oracle.com/javase/8/docs/api/java/sql/Date.html#valueOf%28java.lang.String%29收到一个表示日期格式的字符串yyyy-[m]m-[d]d
. e.g.:
ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));
-
java.util.Date
假设你有一个变量endDate
类型的java.util.Date
,您可以这样进行转换:
ps.setDate(2, new java.sql.Date(endDate.getTime());
-
Current
如果要插入当前日期:
ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));
// Since Java 8
ps.setDate(2, java.sql.Date.valueOf(java.time.LocalDate.now()));
❐ Using java.sql.Timestamp
如果您的表有一列类型TIMESTAMP
or DATETIME
:
-
java.lang.String
方法java.sql.Timestamp.valueOf(java.lang.String) http://docs.oracle.com/javase/8/docs/api/java/sql/Timestamp.html#valueOf%28java.lang.String%29收到一个表示日期格式的字符串yyyy-[m]m-[d]d hh:mm:ss[.f...]
. e.g.:
ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00");
-
java.util.Date
假设你有一个变量endDate
类型的java.util.Date
,您可以这样进行转换:
ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));
-
Current
如果您需要当前时间戳:
ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));
// Since Java 8
ps.setTimestamp(2, java.sql.Timestamp.from(java.time.Instant.now()));
ps.setTimestamp(2, java.sql.Timestamp.valueOf(java.time.LocalDateTime.now()));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)