【发布时间】:2019-02-13 05:59:57
【问题描述】:
我是 sqlite3 的新手,我创建了一个名为 result 的 sqlite3 数据库,该数据库具有 _time 表,该表根据我从 Splunk 查询的纪元时间列出 IP 地址。我正在尝试从我的 sqlite3 数据库中获取基于 _time(纪元时间)表的数据。
这是sqlite3数据库中列出的_time和IP地址的副本:
1535139799|2002:8672:5ebf::8672:5ebf
1535139799|2002:8672:5ebf::8672:5ebf
1535131073|2002:8672:ba8a::8672:ba8a
1535131058|2002:8672:ba8a::8672:ba8a
1535131058|2002:8672:ba8a::8672:ba8a
1535131413|2002:8672:5ebf::8672:5ebf
1535131413|2002:8672:5ebf::8672:5ebf
1535120613|2002:8672:5ebf::8672:5ebf
1531944594|41.212.170.179
1531944594|38.108.250.243
问题是,无论我尝试过什么命令,它总是输出所有的 IP 地址。我只需要 x 天(30 天前)的 IP 地址。我查看了online 并遵循了许多示例,但仍然没有成功。我也看过documentation。 我试过了:
SELECT * FROM result WHERE _time < (DATE('now', '-5 day'));
SELECT * FROM result WHERE _time > (DATE('now', '-5 days'));
SELECT * FROM result WHERE _time > (SELECT DATE('now', '-7 day'))
我更改了“天数”,但命令仍会获取所有列出的 IP 地址。我只需要从 x 天前(10 天前或 30 天前)获取 IP 地址。我假设 sqlite3 无法读取我的表中的纪元时间?
我已经被这个问题困扰了好几天了。我会继续寻找解决方案,感谢任何反馈!
【问题讨论】:
-
我认为您的
_time是 Unixepoch(自 1970-01-01 以来的秒数),所以试试_time > strftime('%s',DATE('now', '-5 day'))。 -
@ComputerVersteher 您不需要 date() 部分 - 只需
strftime('%s', 'now', '-5 day') -
@Shawn 很高兴知道。我不熟悉 sqlite,只是将 OPs 尝试与文档结合起来。
标签: python python-3.x sqlite epoch splunk