Странный формат даты в SQLite
От: Аноним  
Дата: 20.10.09 12:23
Оценка:
В SQLite базе встретилось DATETIME поле со значением 2455035.28628391. Известно, что это 2009-й год, а не 8600-й, как выходит, если трактовать её стандартным способом типа

double dateTimeRepr = (double)reader.GetDouble(6);
DateTime dateTime = DateTime.FromOADate(dateTimeRepr).ToLocalTime();


На таком не работает и reader.GetDateTime. Не работает ни один из коннекшн стрингов (DateTime=Ticks/JulianDays/ISOxxx).

Кто-нибудь сталкивался с такой странностью? Как прочитать валидное время?
Re: Странный формат даты в SQLite
От: wellwell Австралия https://www.softperfect.com
Дата: 20.10.09 14:11
Оценка:
" Аноним 620 " <0@users.rsdn.ru> wrote in message news:3575957@news.rsdn.ru...
> Кто-нибудь сталкивался с такой странностью? Как прочитать валидное время?

Это юлианское представление даты, тут закодировано 22/07/2009 6:52:14 PM.

Не знаю как там в шарпе, в Delphi из него обычная дата получается так:
const
 D: Double = 2455035.28628391;
begin
 ShowMessage(DateTimeToStr(JulianDateToDateTime(D)));
end;
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Странный формат даты в SQLite
От: Аноним  
Дата: 20.10.09 14:47
Оценка:
Спасибо, видимо, я неправильно писал connection string. reader.GetDateTime заработал после DateTimeFormat=JulianDay; в connection string:

@"Data Source={0};Read Only=True;Version=3;DateTimeFormat=JulianDay;"
Re: Странный формат даты в SQLite
От: Anton Batenev Россия https://github.com/abbat
Дата: 20.10.09 18:06
Оценка:
Здравствуйте, Аноним, Вы писали:

> В SQLite базе встретилось DATETIME поле со значением 2455035.28628391. Известно, что это 2009-й год, а не 8600-й, как выходит, если трактовать её стандартным способом типа


Небольшая ремарка. В SQLite нет типа DATETIME. А это число можно трактовать в зависимости от контекста (в некоторых случаях ноль может соответствовать 1970 году).
avalon 1.0rc2 rev 304, zlib 1.2.3
Re[2]: Странный формат даты в SQLite
От: Аноним  
Дата: 20.10.09 18:23
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, Аноним, Вы писали:


>> В SQLite базе встретилось DATETIME поле со значением 2455035.28628391. Известно, что это 2009-й год, а не 8600-й, как выходит, если трактовать её стандартным способом типа


AB>Небольшая ремарка. В SQLite нет типа DATETIME. А это число можно трактовать в зависимости от контекста (в некоторых случаях ноль может соответствовать 1970 году).


Нету может и нету, но в схеме SQLite Database Browser показывает DATETIME. Это и имелось в виду.
Re[3]: Странный формат даты в SQLite
От: Anton Batenev Россия https://github.com/abbat
Дата: 20.10.09 18:32
Оценка:
Здравствуйте, Аноним, Вы писали:

> Нету может и нету, но в схеме SQLite Database Browser показывает DATETIME. Это и имелось в виду.


Ну это я к тому написал, что следует держать в уме, что там может быть написано и LONGINT, а в реальности быть текстовое поле
avalon 1.0rc2 rev 304, zlib 1.2.3
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.