Sqlite - 计算时间段

时间:2015-02-10 14:40:03

标签: sqlite

我需要计算“固定”和“固定”之间的时间。时间(通常是几天前)和现在。

因此我用google搜索了这个sql(http://www.sqlite.org/lang_datefunc.html):

SELECT strftime ('%s', '1423143532') - strftime ('%s', 'now') as timediff;

它给出了一个奇怪的结果(122747310831610),我不明白为什么! : - /

我应该使用不同的计算方法,那问题出在哪里?如果是,哪一个会给我正确的结果? :)

1 个答案:

答案 0 :(得分:1)

裸号被解释为朱利安日号:

> SELECT datetime('1423143532');
3891722-46318118-31 12:00:00
> SELECT datetime(2457064);
2015-02-10 12:00:00

要将数字解释为1970年以来的秒数,您必须使用unixepoch修饰符:

> SELECT datetime(1423143532, 'unixepoch');
2015-02-05 13:38:52
> SELECT strftime ('%s', 1423143532, 'unixepoch');
1423143532

如您所见,将此数字传递给strftime毫无意义。直接使用它:

> SELECT 1423143532 - strftime('%s', 'now') as timediff;
-436916