sqlite3根据纪元时间获取数据
sqlite3 fetching data based on epoch time
我是 sqlite3 的新手,我创建了一个名为 result 的 sqlite3 数据库,它有 _time table,它根据我从 Splunk 查询的纪元时间列出了 IP 地址。我正在尝试从我的 sqlite3 数据库中获取基于 _time(纪元时间)table 的数据。
这是 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 and followed many examples but still no success. I've also looked at 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'))
我已经更改了 'days' 的数量,但这些命令仍然获取所有列出的 IP 地址。我只需要从 x 天前(10 天前或 30 天前)获取 IP 地址。我假设 sqlite3 无法在我的 tables?
中读取纪元时间
我被这个问题困了好几天了。我会继续寻找解决方案,感谢任何反馈!
基本上你必须将比较参数的一侧转换为与另一参数相同的类型。
您可以使用 :-
将调整后的 now(右侧参数)转换为秒
srtftime('%s','now',your_adjustment) or you could adjust the
或者您可以使用
将 _time 列转换为日期 (yyyy-mm-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');
我是 sqlite3 的新手,我创建了一个名为 result 的 sqlite3 数据库,它有 _time table,它根据我从 Splunk 查询的纪元时间列出了 IP 地址。我正在尝试从我的 sqlite3 数据库中获取基于 _time(纪元时间)table 的数据。
这是 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 and followed many examples but still no success. I've also looked at 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'))
我已经更改了 'days' 的数量,但这些命令仍然获取所有列出的 IP 地址。我只需要从 x 天前(10 天前或 30 天前)获取 IP 地址。我假设 sqlite3 无法在我的 tables?
中读取纪元时间我被这个问题困了好几天了。我会继续寻找解决方案,感谢任何反馈!
基本上你必须将比较参数的一侧转换为与另一参数相同的类型。
您可以使用 :-
将调整后的 now(右侧参数)转换为秒srtftime('%s','now',your_adjustment) or you could adjust the
或者您可以使用
将 _time 列转换为日期 (yyyy-mm-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');