JDBC Плохой формат для DATE - PullRequest
1 голос
/ 22 мая 2011

Я пытаюсь прочитать несколько дат из своей базы данных, но при определенных обстоятельствах я получаю «java.sql.SQLException Bad format для DATE». Вот мой код:

Date entryDateD = res.getDate("entryDate");

В режиме отладки я вижу, что содержимое entryDateD '1996-9-15' находится в моей базе данных .. Хотя я должен упомянуть, что я также читаю другие даты из своей базы данных, которые, как я заметил, имеют формат «xxxx-0y-zz». Я хочу сказать, что в случае, если месяц меньше 10, перед ним добавляется ноль, который в этом случае не добавляется. Я подозреваю, что это может быть как-то связано с этим. (этот ноль не появляется в самой базе данных, хотя не только в этой дате, но и в любой дате) спасибо заранее:)

Ответы [ 4 ]

2 голосов
/ 22 мая 2011

Просто предположение, но какой тип столбца MySQL у вас есть для entryDate ??

По умолчанию тип даты в MySQL генерирует формат гггг-мм-дд;Отсутствующий ноль заставляет меня поверить, что тип столбца может быть varchar или другим типом, не относящимся к дате, на уровне БД.

Это может быть причиной ваших проблем на уровне Java ...

2 голосов
/ 22 мая 2011

Если вы представляете его как java.util.Date, у вас есть преимущество, позволяющее драйверу JDBC беспокоиться о любых проблемах с форматированием базы данных.

Что касается того, как он отображается на вашем дисплее, это зависит от вас и от вашего использования java.text.DateFormat класса.

Вы делаете правильную вещь, представляя дату как java.util.Dateв вашем приложении, но вы должны понимать, что форматирование - это отдельная проблема, связанная с типом.

0 голосов
/ 15 февраля 2018

Если вы хотите получить res.getDate("entryDate") как ГГГГ-ММ-ДД , тогда вам нужно привести в качестве даты дату в вашем запросе, например:

SELECT
...
CAST(entryDate as DATE)as entryDate,
...
FROM your_table;

Если вы чувствуете, что этополезно, затем сделайте upVote, чтобы сделать его полезным для других.

0 голосов
/ 23 мая 2011

У Java есть дочерний класс java.util.Date, который называется java.sql.Date

Самый простой способ создать Java SQL Date - это вызвать конструктор с помощью Utility.Дата.

java.util.Date uDate = res.getDate("entryDate");
java.sql.Date sDate  = new java.sql.Date(uDate.getTime());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...