Как преобразовать формат даты в другой формат даты в Java? - PullRequest
0 голосов
/ 06 февраля 2012

Я хочу преобразовать формат даты в другой формат:

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, он не работает Пожалуйста, помогите мне, как я буду конвертировать дату, чтобы я мог использовать ее в БД, так как outFmt.format (date) не может быть разрешен в запросе БД

Спасибо

Ответы [ 2 ]

0 голосов
/ 06 февраля 2012

Я предполагаю, что вы используете 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);
0 голосов
/ 06 февраля 2012

Dateformat предназначен для разбора строки в java Тип даты или выходной объект даты в текст с определенным шаблоном.

В вашем случае вам нужен объект Date для вашего запроса, а не String.

этот код работает для вас?

 return template
                    .queryForInt(
                            "SELECT COUNT(TRANSDATE) FROM stockdata WHERE TRANSDATE= ? AND symbolname = ?",
                            rowMapper,date, SymbolName);
...