我是sqlite3的新手,我创建了一个名为result的sqlite3数据库,其中有一个_time表,该表根据我从Splunk查询的时代时间列出IP地址。我试图从我的_time数据库中获取基于sqlite3 (划时代时间)表的数据。
以下是_time数据库中列出的sqlite3和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天的IP地址(30天前)。我看过在线,并跟随了许多例子,但仍然没有成功。我还看过文档。我试过:
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不能在我的表中读取划时代时间?
我在这个问题上困了好几天了。我将继续寻找一个解决方案,我感谢任何反馈!
发布于 2018-09-08 21:37:16
基本上,您必须将比较参数的一个边转换为与另一个参数相同的类型。
您可以使用以下方法将调整后的now (右参数)转换为秒:-
srtftime('%s','now',your_adjustment) or you could adjust the 或者,可以使用以下方法将_time列转换为date (Yyyy Dd)格式
date(_time,'unixepoch')用你的第一个例子,这个例子可以是:-
SELECT * FROM result WHERE _time < strftime('%s','now', '-5 day');也可以是:-
SELECT * FROM result WHERE date(_time,'unixepoch') < date('now', '-5 day');https://stackoverflow.com/questions/52230037
复制相似问题