Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219

Java and SQLite (дата)

23.12.2015, 05:55. Показов 3143. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем, бьюсь над одной проблемой. Начну сначала. Создаю БД в ней создаю таблицу dates, в таблицу dates вставляю несколько взятых с потолка дат. Пытаюсь вывести на экран содержимое табцицы, а вмсесто моих выдуманных дат выводится на экран одна и таже дата а именно: 1970-01-01.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
String createTabDates ="CREATE TABLE IF NOT EXISTS dates(t_id INTEGER PRIMARY KEY AUTOINCREMENT, dateOfB DATE)";
try {
                  stmt.execute(createTabDates);
 
              } catch (SQLException e) {
                  System.err.println("Creating error");
                  e.printStackTrace();
              }
String addDate;
try{
                 
                  addDate = "INSERT INTO dates(dateOfB) VALUES (2015-11-13)";
                  stmt.execute(addDate);
                  addDate = "INSERT INTO dates(dateOfB) VALUES (2007-01-25)";
                  stmt.execute(addDate);
                  addDate = "INSERT INTO dates(dateOfB) VALUES (2014-10-03)";
                  stmt.execute(addDate);
 
              }catch(SQLException e){
                  System.err.println("Addition error");
              }
try{
                  selectTab ="SELECT * FROM dates";
                  ResultSet result =  stmt.executeQuery(selectTab);
                  Date d;
                  while(result.next()){
                      d = result.getDate("dateOfB");
                      System.out.println(d);
                  }
          
              }catch(SQLException e){
                  System.err.println("Error");
              }
По идее вывести на экран должно бы было 3 следующие даты:
2015-11-13
2007-01-25
2014-10-03

Но в реальности выводит на экран 3 раза одну и ту же дату т.е.
1970-01-01
1970-01-01
1970-01-01
Кто чем, подскажите в чем может быть проблема????
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2015, 05:55
Ответы с готовыми решениями:

Java с sqlite
Подскажите где можно найти наиболее подробный материал по работе java с sqlite.

Java + дата
Допустим пишу программу расписания для андроид, как лучше сделать чтобы прога сама запрашивала дату с устройства ?

SQLite and Java Delete ForeignKey
Привет! Каким образом настроить БД, чтобы нельзя было удалять строки с данными, связанными внешними ключами? del Прикрепляйте...

5
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
23.12.2015, 14:31
Aliaxandr, вы что-то странное вставляете в вашу таблицу.
Скорее всего вы вставляете такие числа
Code
1
2
3
2015-11-13 = 2015 - 11 - 13 = 1991
2007-01-25 = 2007 - 1 - 25 = 1981
2014-10-03 = 2014 - 10 - 3 = 2001
Естественно, из этого ничего хорошего и не могло получиться.
Попробуйте взять даты в кавычки (хотя я не уверен как sqlite их воспримет)
SQL
1
INSERT INTO dates(dateOfB) VALUES ('2014-10-03')
1
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
23.12.2015, 16:51  [ТС]
turbanoff, попробовал, результат вывода на экран абсолютно тот же. Что интересно, 3 даты ввожу разные, а результат один, как будто по дефолту что-ли. Практиковал с другими перегруженными методами getDate(), но из этого также ничего не вышло
0
0 / 0 / 1
Регистрация: 13.12.2015
Сообщений: 3
24.12.2015, 18:12
Лучший ответ Сообщение было отмечено Aliaxandr как решение

Решение

у меня что- то так
Java
1
2
3
4
5
6
7
public static void Dat(){
        GregorianCalendar curent = new GregorianCalendar();
        Locale lokal = new Locale("ru", "RU");
        DateFormat df = DateFormat.getDateInstance(DateFormat.DEFAULT, lokal);
        String date = df.format(curent.getTime());
        st.execute("INSERT INTO 'users' ('date') VALUES ( '"+ date +"'); ");
    }
ps код немного урезан смысл тотже
0
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
29.12.2015, 07:01  [ТС]
Marrio, да код работает, но соль в том, что создавая таблицу я для даты указываю тип DATE, и потому переменную в таблицу должен тоже вставлять типа DATE, a в данном случае эта переменная типа String
Цитата Сообщение от Marrio Посмотреть сообщение
String date = df.format(curent.getTime());
Т.е. в строке
Java
1
String createTabDates ="CREATE TABLE IF NOT EXISTS dates(t_id INTEGER PRIMARY KEY AUTOINCREMENT, dateOfB DATE)";
Я должек DATE поменять например на VARCHAR т.е.
Java
1
String createTabDates ="CREATE TABLE IF NOT EXISTS dates(t_id INTEGER PRIMARY KEY AUTOINCREMENT, dateOfB VARCHAR(20))";
А рабатать мне нужно с date или datetime.
0
9 / 9 / 8
Регистрация: 03.07.2015
Сообщений: 219
31.12.2015, 05:14  [ТС]
Покопавшись в инете, нашел следующий вопрос на интересующий меня ответ, ради которого собственно и писалась эта тема.
Date and Time Datatype
SQLite does not have a storage class set aside for storing dates and/or times. Instead, the built-in Date And Time Functions of SQLite are capable of storing dates and times as TEXT, REAL, or INTEGER values:

TEXT as ISO8601 strings ("YYYY-MM-DD HH:MM:SS.SSS").
REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC.

Applications can chose to store dates and times in any of these formats and freely convert between formats using the built-in date and time functions.
Take your pick. I'd go for TEXT or INTEGER. The INTEGER will be faster. If you need to store dates past 1970 (e.g. birthdates, etc), then I'd go for TEXT. If you just need to store creationtime/modificationtime, etc for now and the future, then go for INTEGER.

Как то так, считаю, что тема может быть закрыта. Надеюсь, что не ломаю правила форума в связи с тем, что он ангоязычный.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.12.2015, 05:14
Помогаю со студенческими работами здесь

java, mysql и дата
не могу записать корректную дату, после записи сегодняшняя дата в таблице выглядит вот так 20.05.2003? пробовал с JFormattedTextField так: ...

java -> SQLite - > как использовать оператор IN
Доброго времени суток. Имеется база данных, в ней таблица с именем Week. Требуется: выбрать значение, если значение совпадает. ...

Sqlite java netbeans ( не видит таблицу )
Коротко: Есть таблица дб2 в sqlite browser, а netbeans говорит что её нет. Ошибка в скриншоте

Дата и время в JAVA
Calendar calendar = new GregorianCalendar(); SimpleDateFormat formattedDate = new SimpleDateFormat("dd.MM.yyyy"); ...

Минимальная дата в SQLite
День добрый! Возникла такая потребность: Необходимо получить из базы строки в которые в опр столбце содержащем даты, указана дата...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 12.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 11.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 10.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 09.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 09.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 09.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru