2014-06-26 4 views
1

Я ищу лучший способ обновить поле DateTime в MySQL, пройдя через мой результирующий набор. Я нашел несколько других вопросов в этих строках, но ни один из них не касается форматов данных Java и формата даты в инструкции rs.updateDate. Я прикрепил код, который редактор запрещает.Обновление ResultSet в MySQL для столбца DateTime

public class EmailQueueProcess { 

    public static Boolean process() 
     { 

     Date processedDtm = new Date(); 
     java.util.Date today=new java.util.Date(); 
     Timestamp currentTimestamp=new Timestamp(today.getTime()); 

     Connection conn = null; 
     PreparedStatement stmt = null; 
     ResultSet rs = null; 
     try { 
      strSQL = "select * from portal.emailqueue where portal.emailqueue.processedDtm is null"; 
      conn = com.retailapppartners.Utils.staticGetConnection().getConnection();  
      stmt = conn.prepareStatement(strSQL, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 

      //now loop through and update the process datetime values 
      rs = stmt.executeQuery(); 
      ResultSetMetaData rsMetaData = (ResultSetMetaData) rs.getMetaData(); 
      int numberOfColumns = rsMetaData.getColumnCount(); 
      while (rs.next()) { 
      // Grab some data then update the row 
       rs.updateDate ("processedDtm", currentTimestamp); 
       rs.updateRow(); 

      } 

     } catch ..... 
+0

Какая ошибка вы получаете? Что значит «формат» даты? –

+0

Редактор говорит: «Метод updateDate (String, Date) в типе ResultSet неприменим для аргументов (String, Timestamp)« Так кажется, моя переменная несовместима с rs.updateDate. –

+0

Привет, и Добро пожаловать в переполнение стека. Пожалуйста, прочитайте [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) в справочном центре, а затем соответствующим образом отредактируйте свой вопрос. Благодарю. –

ответ

0

updateDate() занимает java.sql.Date. Таким образом, я полагаю, у вас есть два варианта здесь,

  1. Используйте rs.updateTimestamp("processedDtm", currentTimestamp);
  2. Использование java.sql.Date currentTimestamp = new java.sql.Date();

согласно MySQL Documentation в таблице 5.1,

These MySQL Data Types   - Can always be converted to these Java types 
DATE, TIME, DATETIME, TIMESTAMP - java.lang.String, java.sql.Date, java.sql.Timestamp 

Таким образом, вы можете использовать либо 1 или 2 выше.

+0

Тип столбца DateTime ('2014-06-24 12:36:59') будет rs.updateTimestamp быть правильным способом? –

+0

@RogerC Добавлена ​​ссылка для документации, в любом случае. –

+0

Cheers @Elliott - спасибо за ссылку MySQL! –

Смежные вопросы