SQLite: выражать разницу в днях, часах, минутах между двумя указанными датами - PullRequest
9 голосов
/ 10 ноября 2011

Я пытаюсь выразить разницу двух данных дат в днях, часах и минутах (например, 1 день, 6 часов, 17 минут) в качестве вывода запроса SQLite.У меня есть entryin и entryout как datetime поля в базе данных SQLited.Я попробовал все комбинации julianday и strftime, но все еще сталкивался с плохой погодой.

Я попробовал strftime('%d %H:%M', julianday(entryout)-julianday(entryin)).Для строки значения 2011-11-10 11:46 и 2011-11-09 09:00.но результат будет 25 14:46 вместо 01 02:46.

Может кто-нибудь помочь мне с этим или указать правильную логику для этого?Заранее спасибо.

1 Ответ

10 голосов
/ 10 ноября 2011

Вы можете попробовать что-то вроде этого:

SELECT
    CAST((strftime('%s', '2011-11-10 11:46') - strftime('%s', '2011-11-09 09:00')) / (60 * 60 * 24) AS TEXT) || ' ' ||
    CAST(((strftime('%s', '2011-11-10 11:46') - strftime('%s', '2011-11-09 09:00')) % (60 * 60 * 24)) / (60 * 60) AS TEXT) || ':' ||
    CAST((((strftime('%s', '2011-11-10 11:46') - strftime('%s', '2011-11-09 09:00')) % (60 * 60 * 24)) % (60 * 60)) / 60 AS TEXT);
...