Sqlite - 时间段的计算
Sqlite - Calculation of time period
我需要计算 'fixed' 时间(通常是几天前)和现在之间的时间。
因此我用谷歌搜索了这个 sql (http://www.sqlite.org/lang_datefunc.html):
SELECT strftime ('%s', '1423143532') - strftime ('%s', 'now') as timediff;
它给出了一个奇怪的结果 (122747310831610),我不知道为什么!? :-/
我是否应该使用不同的计算方法,这是问题所在吗?如果是,哪个会给我正确的结果? :)
裸数被解释为儒略日数:
> 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
我需要计算 'fixed' 时间(通常是几天前)和现在之间的时间。
因此我用谷歌搜索了这个 sql (http://www.sqlite.org/lang_datefunc.html):
SELECT strftime ('%s', '1423143532') - strftime ('%s', 'now') as timediff;
它给出了一个奇怪的结果 (122747310831610),我不知道为什么!? :-/
我是否应该使用不同的计算方法,这是问题所在吗?如果是,哪个会给我正确的结果? :)
裸数被解释为儒略日数:
> 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