Управлять вводом атрибута SQLite только в формате даты. - PullRequest
2 голосов
/ 20 марта 2012

Я читал все о преобразовании полей TEXT в форматы даты и способах использования Python для создания объектов даты, но мой вопрос остается.

В моей таблице есть столбец dateTime, заданный как TEXT, я хотел бычтобы построить ограничение, которое заставляет ввод быть в формате dateTime, но так как SQLite не делает даты (как мне бы хотелось), я не понял, как это сделать.

Мои текущие идеи: 1. Ограничить количество символов 2. Установить отдельные атрибуты для дня, месяца и года и ограничить их домены 3. Глупо делать это на стороне базы данных, просто делать это в пользовательском интерфейсе

Буду признателен за ваше мнение по поводу тех или иных вариантов.Спасибо:)

1 Ответ

4 голосов
/ 04 июня 2014

Я пытался решить ту же самую проблему, и метод, который я придумал, состоял в том, чтобы использовать функции даты / времени, чтобы проанализировать значение и проверить, что оно не изменилось.По сути, следующее:

CREATE TABLE dts_test (
    dts     TEXT CHECK (dts IS datetime(dts))
);

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

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