Сохранение дат в SQLite? - PullRequest
4 голосов
/ 31 октября 2010

Я нашел это по этой ссылке:

http://www.sqlite.org/datatype3.html

1.2 Тип данных даты и времени

В SQLite не выделен класс хранениядля хранения дат и / или времени.Вместо этого встроенные функции даты и времени SQLite могут сохранять даты и время в виде значений TEXT, REAL или INTEGER:

TEXT в виде строк ISO8601 ("YYYY-MM-ДД ЧЧ: ММ: СС.ССС ").

REAL как числа юлианских дней, количество дней, прошедших с полудня в Гринвиче 24 ноября 4714 года до нашей эры, в соответствии с Григорианским календарем.

INTEGER как Unix Time, количество секунд с 1970-01-01 00:00:00 UTC.Приложения могут сохранять даты и время в любом из этих форматов и свободно конвертировать между форматами, используя встроенные функции date.time и date.date и time.

Я немного запутался в том, чтокоторый я должен использовать.Я создаю приложение Windows Forms C # и буду использовать встроенный элемент управления DateTime.

Какой вариант мне больше подходит?Я думаю, что TEXT будет, но, возможно, я ошибаюсь.Я новичок в SQLite.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 31 октября 2010

Я полагаю, вы используете System.Data.SQLite ? Даже если сам SQLite не распознает тип данных datetime, этот поставщик данных распознает его.

Например, если вы используете SQLiteDataAdapter для заполнения таблицы данных оператором выбора, если тип данных столбца - datetime, возвращаемым столбцом данных будет datetime.

У провайдера есть ограничение: он не может угадать тип данных, когда ваш выбор содержит более одной таблицы. В этом случае вы можете объявить возвращаемый тип данных самостоятельно, добавив к нему следующий запрос:

types [integer], [text], [boolean], [datetime];
select A.id, A.subject, B.isactive, B.due_date from ...

Поставщик сохраняет данные в виде текста, например 2009-04-01 17:42:38.828125. SQLite подходит для этого формата, например, вы можете рассчитать следующий день с помощью:

select datetime('2009-04-01 17:42:38.828125', '+1 days');

РЕДАКТИРОВАТЬ: вы указываете тип данных как datetime, как это:

create table C ( d datetime );
0 голосов
/ 31 октября 2010

Я использую текст, и у меня не было проблем с ним.

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