Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/17: Рейтинг темы: голосов - 17, средняя оценка - 4.59
3Gern
4 / 4 / 4
Регистрация: 20.12.2010
Сообщений: 117
1

java, mysql и дата

03.05.2013, 18:16. Просмотров 3241. Ответов 12
Метки нет (Все метки)

не могу записать корректную дату, после записи сегодняшняя дата в таблице выглядит вот так 20.05.2003? пробовал с JFormattedTextField так:
Java
1
db.setDate(1, (Date)textField.getValue());
так:
Java
1
db.setString(1, textField.getText());
и так с помощью сторонних библиотек(JDatePicker):
Java
1
db.setString(1, ((JTextField)jDataChooser.getDateEditor().getUiComponent()).getText();
но все равно результат один не корректно записанная дата.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2013, 18:16
Ответы с готовыми решениями:

Не подключается MySQL (java.lang.ClassNotFoundException: com.mysql.jdbc.Driver)
Код : import java.io.*; import java.sql.*; public class Connect {...

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

Java and SQLite (дата)
Привет всем, бьюсь над одной проблемой. Начну сначала. Создаю БД в ней создаю...

Java и MySQL
Здравствуйте! подскажите пожалуйста, почему не удается выбрать БД строчкой use...

Java-интерфейс к БД MySQL
нужно написать интерфейс на java к бд(mysql) с чего мне начать? какие...

12
AckiyBolt
649 / 398 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
03.05.2013, 18:20 2
а какой тип у вас имеет столбец в БД?
1
3Gern
4 / 4 / 4
Регистрация: 20.12.2010
Сообщений: 117
03.05.2013, 18:25  [ТС] 3
Цитата Сообщение от AckiyBolt Посмотреть сообщение
а какой тип у вас имеет столбец в БД?
извиняюсь забыл написать, тип date
1
AckiyBolt
649 / 398 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
03.05.2013, 18:29 4
а. ну так оно и сохраняет то что и должно)
поставьте тип колонки DATETIME и будет вам счастье =)

http://phpclub.ru/mysql/doc/datetime.html первые абзацы

апд. если я конечно правильно врубился в проблему
0
3Gern
4 / 4 / 4
Регистрация: 20.12.2010
Сообщений: 117
03.05.2013, 18:34  [ТС] 5
Цитата Сообщение от AckiyBolt Посмотреть сообщение
а. ну так оно и сохраняет то что и должно)
поставьте тип колонки DATETIME и будет вам счастье =)

http://phpclub.ru/mysql/doc/datetime.html первые абзацы

апд. если я конечно правильно врубился в проблему
так тоже не получилось пробовал, только что еще раз попробовал не получилось, выдает вот это 20.05.2003 13:00:00 вместо 03.05.2013
1
AckiyBolt
649 / 398 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
03.05.2013, 18:37 6
а-а... это уже интересней

поменяйте вот это:
Java
1
db.setDate(1, (Date)textField.getValue());
на вот такое:
Java
1
2
3
System.out.println(textField.getValue());
System.out.println((Date)textField.getValue());
db.setDate(1, (Date)textField.getValue());
запостите то, что вводите, что появилось в консоли и что записалось в БД
1
3Gern
4 / 4 / 4
Регистрация: 20.12.2010
Сообщений: 117
03.05.2013, 19:05  [ТС] 7
Цитата Сообщение от AckiyBolt Посмотреть сообщение
а-а... это уже интересней

поменяйте вот это:
Java
1
db.setDate(1, (Date)textField.getValue());
на вот такое:
Java
1
2
3
System.out.println(textField.getValue());
System.out.println((Date)textField.getValue());
db.setDate(1, (Date)textField.getValue());
запостите то, что вводите, что появилось в консоли и что записалось в БД
странно теперь выдает что не может перевести дату java.util.Date cannot be cast to java.sql.Date, щяс погуглю.

Добавлено через 14 минут
все решил проблему.
1
AckiyBolt
649 / 398 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
03.05.2013, 19:12 8
так а в чем она была?
0
3Gern
4 / 4 / 4
Регистрация: 20.12.2010
Сообщений: 117
03.05.2013, 19:24  [ТС] 9
Цитата Сообщение от AckiyBolt Посмотреть сообщение
так а в чем она была?
собственно вот ошибка: java.util.Date cannot be cast to java.sql.Date mysql
сделал вот так:
Java
1
2
3
java.util.Date date = (java.util.Date) txt_dateDocIssue.getValue();
java.sql.Date mySqlDate = new java.sql.Date(date.getTime());
pst.setDate(1, mySqlDate);
если я правильно понял то mysql не понимал тот формат которую записываю нужно было ее перевести.
0
AckiyBolt
649 / 398 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
03.05.2013, 19:37 10
так а в базу то пишется?
1
3Gern
4 / 4 / 4
Регистрация: 20.12.2010
Сообщений: 117
03.05.2013, 19:59  [ТС] 11
Цитата Сообщение от AckiyBolt Посмотреть сообщение
так а в базу то пишется?
то что нужно пишется (03.05.2013), тип оставил date.
0
mutagen
2565 / 2238 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
03.05.2013, 23:05 12
проблема в смешивании 2 классов java.sql.Date и java.util.Date с ними надо работать через метод getTime который вернёт милисекунды и конструировать из них явно нужный тип а не пытаться кастить
Перевод java.sql.date -> java.util.date?

Не по теме:

думаю надо это в FAQ вкинуть

0
AckiyBolt
649 / 398 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
04.05.2013, 03:41 13
Цитата Сообщение от mutagen Посмотреть сообщение
думаю надо это в FAQ вкинуть
ага. в ждбс
0
04.05.2013, 03:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2013, 03:41

Подключение mysql к java
Добрый день, пытаюсь подключить mysql к java и ловлю ошибку на следующей...

Java+mySQL+russian
традиционная тема. пересмотрел кучу постов на форумах. решение с set names ни...

JAVA+Glasfish+MySQL
Вот код : package testjdbc; import java.sql.Connection; import...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru