На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Проблема с типом данных , Из SQLite возвращается непонятный тип данных
    Из запроса вида

    ExpandedWrap disabled
      Cursor c = db.query("TABLE", null, null, null, null, null,
                      "col DESC");


    Получаю данные. Строка, в которой хранится дата имеет теп int и туда записывается время в миллисекундах. Когда пытаюсь преобразовать миилисекунды классом Calendar, получаю ошибку конвертации.

    ExpandedWrap disabled
      Calendar myDate = Calendar.getInstance();
      myDate.setTimeInMillis(Long.valueOf(c.getString(c.getColumnIndex("mydate")));


    При этом в отладчике вижу, что из базы получается строка непонятного формата (скриншот).
    Прикреплённая картинка
    Прикреплённая картинка
      Ну, на то что там тип int как-то не похоже, скорее всего кто-то писал в таблицу используя GregorianCalendar.toString().

      Способов записи и чтения даты в SQLite куча, поэтому надо определиться, как объявлена колонка и как она записывается. Если записывается как int, то и читать с помощью getInt().
        Да, всё правильно. Произошло автоматическое преобразование возвращённого экземпляра GregorianCalendar в строку. Ох уж это неявное приведение типов :))
          А где ж оно неявное, если читаешь как getString? ;)
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0578 ]   [ 17 queries used ]   [ Generated: 27.04.24, 07:18 GMT ]