python - sqlite3根据纪元时间获取数据

标签 python python-3.x sqlite epoch splunk

我是 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 无法读取我的表中的纪元时间?

我已经被这个问题困扰好几天了。我将继续寻找解决方案,感谢任何反馈!

最佳答案

基本上,您必须将比较参数的一侧转换为与另一个参数相同的类型。

您可以使用以下命令将调整后的现在(右侧参数)转换为秒:-

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');

关于python - sqlite3根据纪元时间获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52230037/

相关文章:

python - 如何在Python3中打印.txt文件中的第1行到第N行?

python - 仅调用 python 返回代码状态

python - Python 中文本分类的特征选择

python - 结合 mypy Union 和嵌套的 TypedDict 导致 mypy 错误 : incompatible return value

python - 如何在不使用 sudo 命令的情况下在 Linux 上的单独目录中安装 python3.7 的 sqlite3?

sqlite - 以毫秒精度减去和聚合日期

java.lang.ClassNotFoundException : org. sqlite.JDBC

python - Pandas :过滤多列

python 安全 SQL 查询

python-3.x - pandas_ml 坏了吗?