Значение даты 31.02.2157? - PullRequest
       4

Значение даты 31.02.2157?

4 голосов
/ 11 января 2011

Я работаю в крупномасштабной среде поддержки ИТ.Дважды мы видели, как в столбец Oracle DATE вставлена ​​неверная дата 31.02.2157.До сих пор я не смог воспроизвести эту проблему, но, похоже, она иногда возникает, когда пользователь пытается сохранить «00/00/0000» в столбце.Я полагаю, что значение исходит из обновления PowerBuilder DataWindow.

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

Есть кто-нибудьвидел дату 31.02.2157 в какой-то установленной библиотеке, к которой Oracle могла бы перейти по умолчанию, когда вводится какая-то другая недопустимая дата?Возможно, концепция конца времени, аналогичная дате начала времени 01.01.1970?

Ответы [ 3 ]

4 голосов
/ 11 января 2011

С http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i1847"

Oracle использует собственный внутренний формат для хранения дат.Данные даты хранятся в полях фиксированной длины по семь байтов в каждом, что соответствует столетию, году, месяцу, дню, часу, минуте и секунде.до возможной эпохи 1/1/1900 (или 13.12.1901 г.), которая является датой переноса задачи Год 2038 )

Я думаю, что она0x00 или 0xFF в байтах даты, затем они запутываются, когда его декодируют.(Как это относится к месяцу 255?)

2 голосов
/ 14 июня 2011

Оказывается, это была проблема энергетика. Поле было создано в окне данных как обязательное , но программно было изменено на необязательное перед сохранением. Таким образом, нулевое значение сохранялось в ненулевой столбец базы данных, и Powerbuilder вставил фиктивную дату вместо того, чтобы просто выдать ошибку.

0 голосов
/ 11 января 2011

Я помню, как получал странное значение при сохранении неверной даты. IIRC это было в PB 9, и мы должны были получить EBF для этого. Это была проблема с Масками редактирования даты и введением неверной даты, которая не была отклонена. Извините, у меня нет более подробной информации.

...