我正在保存完整的DATETIME()字符串到我的SQLite数据库,现在我想知道如何根据小时检索条目。
SELECT strftime('%Y-%m-%d %H:%M:%S','now') - strftime('%Y-%m-%d %H:%M:%S','2013-03-16 14:51:00')
将计算年份的差异,例如(这里是1
)。
但是当我刚刚得到%H分量时,我会遇到像
这样的问题SELECT strftime('%Y-%m-%d %H:%M:%S','2013-03-15 14:51:00') - strftime('%Y-%m-%d %H:%M:%S','2013-03-16 14:51:00')
返回0
而不是24
,对吧。那么,在给定完整日期时间戳的情况下,如何最有效地获得小时差呢?
谢谢你的帮助!
一种方法是将日期时间戳转换为unix epoch strtime('%s', ...)
,进行减法,然后转换为小时,如下所示:
sqlite> SELECT (strftime('%s','2013-03-15 14:51:00') - strftime('%s','2013-03-16 14:51:00')) / 3600;
-24