我想将日期格式转换为其他格式:
try {
System.out.println("try block tai asche naki ?" + stockData.getTRANSDATE());
SimpleDateFormat inFmt = new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat outFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = inFmt.parse(stockData.getTRANSDATE().toString());
System.out.println("conversion" +inFmt.parse(stockData.getTRANSDATE().toString()) );
System.out.println("old date format ?" + date);
//date1 = outFmt.format(date);
System.out.println("new date format "+ outFmt.format(date));
return template
.queryForInt(
"SELECT COUNT(TRANSDATE) FROM stockdata
WHERE TRANSDATE= ? AND symbolname = ?",
rowMapper,outFmt.format(date), SymbolName);
}
因为我想在sql查询中使用它不起作用 请帮我解释如何转换日期,以便我可以在db中使用它,因为outFmt.format(date)无法在数据库查询中解析
由于
答案 0 :(得分:0)
Dateformat用于将字符串解析为java日期类型或输出日期对象为具有特定模式的文本。
在您的情况下,您需要查询的Date对象,而不是String。
此代码适合您吗?
return template
.queryForInt(
"SELECT COUNT(TRANSDATE) FROM stockdata WHERE TRANSDATE= ? AND symbolname = ?",
rowMapper,date, SymbolName);
答案 1 :(得分:0)
我猜你正在使用Spring的JdbcTemplate。为什么不绑定java.sql.Date
或java.sql.Timestamp
而不是格式化?
<强>更新强>:
我不知道stockData.getTRANSDATE()
是什么,但为了将其转换为Timestamp
,请执行以下操作:
Timestamp date = new TimeStamp(
inFmt.parse(stockData.getTRANSDATE().toString()).getTime());
然后,将其作为绑定值传递给Spring,而不进行格式化:
return template
.queryForInt(
"SELECT COUNT(TRANSDATE) FROM stockdata
WHERE TRANSDATE= ? AND symbolname = ?",
rowMapper, date, SymbolName);