2015-05-06 5 views
6

Я конвертирую базу данных, созданную в 80-х годах, и кажется, что дата для некоторых таблиц хранится как символы. Есть 2 столбца данных. Первый столбец содержит данные, отформатированный как это:Как конвертировать ° и читать дату?

°& C2 024 

Второй столбец представляет собой текстовое описание:

Description of some stuff 

Данные импортируются в вид «таблицы». C2 определяет заголовок таблицы, 024 определяет строку и ° & определяет, в какой день данные таблицы втянуты. Пример:

Date: 2/21/2007 
     C1     C2      C3     C4 
000 
003 
006 
009 
012 
015 
018 
021 
024      Description of some stu... 
027 

Я пробовал преобразовывать даты в шестнадцатеричный и сравнивать шестнадцатеричные символы с символьной картой.

Я пробовал использовать дату unix по следующим инструкциям: http://smallbusiness.chron.com/convert-date-hexadecimal-56217.html без каких-либо успехов.

Примеры значений и известные даты:

°& - 2/21/2007 
¬& - 2/7/2007 
+( - 2/6/2007 
ª& - 2/5/2007 
+3

Как вы попали в «Известные даты» для этих закодированных версий? – JNevill

+3

Я не думаю, что дата хранится как символы. Это двоичный формат, и по какой-то причине ваша программа интерпретирует и отображает ее как символы. Можете ли вы изменить свой пост, чтобы показать двоичное представление? –

+0

° & C2 024 - буквально скопировано и вставлено из БД. Бинарное представление этих символов: 11000010 10110000 Известные даты взяты из перехода к представлению и просмотра даты. Поскольку в этой таблице нет ничего другого (даже не ID), я пришел к выводу, что персонажи должны были быть датами. В противном случае невозможно было бы совместить представление с правильной датой. –

ответ

1

Ваш вопрос нельзя ответить, как просили. Очень важно знать номера в столбце этой даты, потому что это, безусловно, то, что они есть. Они не являются строками в кодировке, которую вы используете 30 лет спустя.

Вы упомянули последовательность °&. Если вы используете Linux с кодировкой ISO 8859-1, этот символ степени B0. Если вы используете консоль Windows с кодировкой CP850, это F8. Мы также не знаем эндиантизм данных, которые могли бы объяснить тайну +(.

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

0

Эта страница сообщает, что коды ASCII используются для хранения количества дней с (или до) 1 января 1900 года. Это похоже на технологию серийных дат, используемую Lotus 1-2-3, MS Excel и другим программным обеспечением , http://cs.pervasive.com/forums/p/11233/38076.aspx

Смежные вопросы