У меня есть база данных sqlite с полем datatime last_accessed и другим полем stale.
Как обновить устаревшее поле для записей старше, чем, скажем, 5 минут?
, например
Это не похоже на работу.
обновить mytable set stale = 1 где (datetime ('now') - last_accessed)> 300;
На самом деле
выберите дату и время («сейчас») - «2011-02-22 08:48:34»;
возвращает 0.
Как мне сделать арифметику в sqlite3?
EDIT:
Так как я конвертирую last_accessed в datetime, на самом деле это просто поле секунд. Как вы думаете, я должен вместо этого преобразовать это поле в поле секунд? Тогда мне не нужно делать что-то вроде strftime ('% s', time ('now')) - strftime ('% s', last_accessed)?
Edit2:
Насколько я могу судить, функции difftime нет. Я обнаружил, что вы должны использовать формат strftime ('% s', datetime ('now')) - ..., чтобы он работал. Однако вместо этого я просто преобразовал в целочисленное поле, в котором непосредственно храню время (NULL).