Как обновить поле DATETIME существующими данными из той же таблицы - PullRequest
0 голосов
/ 16 августа 2010

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

Я обновил свою таблицу, добавив в нее поле FullDate, используя таблицу alter.

> ALTER TABLE Files ADD COLUMN UploadDate DATETIME DEFAULT 0;

Далее я хочу перенести все существующие поля года в новое поле. Поэтому я ищу что-то вроде:

> UPDATE Files SET UploadDate = (DATETIME('%Y-%m-%d', Year, 1, 1));

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

Как правильно обновить поле DATETIME существующими данными в той же таблице?

1 Ответ

2 голосов
/ 16 августа 2010

Функции DATE и DATETIME не имеют параметра форматирования.

Для более: http://sqlite.org/lang_datefunc.html

Основная загвоздка в том, что SQLite не имеет никакой даты или времени типов , так что вы также можете заполнить поле:

UPDATE Files SET UploadDate = Year || '-01-01';

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

...