Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Как лучше записать в базу данных дату?


Автор: ckopn 21.3.2007, 14:04
Нужно записать дату. 
Нужно выбирать данные параметром бивин.
А база SQLite имеет только типы:
NULL. The value is a NULL value.
INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.
REAL. The value is a floating point value, stored as an 8-byte IEEE floating point number.
TEXT. The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).
BLOB. The value is a blob of data, stored exactly as it was input.

Я знаю что хранят дату в виде числа, оно связано как то с годом 1970. 
Скажите пожалуста все варианты.

Автор: Wanderer2019 22.3.2007, 11:30
ну храни нипрмер в INTEGER (8 bytes)... вроде бы столько занимает long в С#:

Код

long b_dt = DateTime.Now.ToBinary();
DateTime dt = DateTime.FromBinary(b_dt);

Автор: ckopn 23.3.2007, 08:30
а про хранение даты связанное с 1970 годом кто знает???

Автор: Idsa 25.3.2007, 16:32
Цитата(ckopn @  23.3.2007,  08:30 Найти цитируемый пост)
а про хранение даты связанное с 1970 годом кто знает???

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

В C# можно использовать метод System.DateTime.ToBinary(). Это немного другой формат, т. к. DateTime хранит количество тиков с 1 явнваря 1 года н. э., но смысл тот же.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)