Почему дата вставлена ​​как 02/10/0010 вместо 02/10/2010 - PullRequest
0 голосов
/ 11 февраля 2010

Я вставляю запись в orcle db через Java-приложение. Значение даты добавлено как 02/10/0010 вместо 02/10/2010 ЧЧ: ММ: СС AM / PM Я использую соединение оракула JDBC. Это проблема с драйвером JDBC? Любой вклад по этому вопросу.

Ответы [ 4 ]

2 голосов
/ 11 февраля 2010

Если вы используете Oracle и JDBC, не храните дату в вашей таблице как строку. Сделайте это настоящим свиданием, и вы избавите себя от всей этой боли.

1 голос
/ 11 февраля 2010

Проверьте ваш источник даты. Это двузначный год или четыре?

Кроме того, существуют форматы масок даты Oracle, которые могут вызывать это. Проверьте настройки по умолчанию для установки.

0 голосов
/ 11 февраля 2010

Согласен.

Если вы используете формат даты Java (не знаю его класс только сейчас), драйвер JDBC выполняет все, что нужно для его сохранения в столбце даты.

Если вы используете String в java и / или varchar2 в таблице Oracle, вы делаете это неправильно. Это приведет к неявным преобразованиям, настройкам NLS и всей этой боли ... если вы находитесь в таком плохом состоянии, то вам нужны явные преобразования и маски форматирования при каждом использовании даты.

Используйте правильные типы.

0 голосов
/ 11 февраля 2010

Я предполагаю, что значение, которое вы передаете, равно "02/10/10".

Функции даты довольно противоречивы в отношении того, что они делают с двузначными годами. Если вы пытаетесь ввести даты для своей «временной шкалы древней истории», компьютер должен предположить, что двухзначные даты должны быть сокращенными для 21-го века, это очень раздражает. Нам действительно лучше с интерпретацией даты WYSIWYG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...