首页 > 解决方案 > 选择特定时间之间的所有记录?

问题描述

我正在尝试从时间在 09:30:00 到 15:30:00 之间的表中获取所有记录

我有时间戳列:

yyyy-mm-dd HH:MM:SS

下面返回一个空数据框:

sta = 'SELECT * FROM bnffut WHERE timestamp BETWEEN "09:15:00" and "15:30:00"'

df = pd.read_sql(sta,conn)

这个给了我所有的记录:

sta = 'SELECT * FROM bnffut WHERE timestamp >= "09:15:00"'
df = pd.read_sql(sta,conn)

标签: pythonpandassqlite

解决方案


您的timestamp列包含日期和时间,您不能仅将其与时间进行比较。
用于SUBSTR()仅从 中提取时间timestamp

sta = 'SELECT * FROM bnffut WHERE SUBSTR(timestamp, 12) BETWEEN "09:15:00" and "15:30:00"'

提取时间部分的另一种方法是使用函数TIME()

sta = 'SELECT * FROM bnffut WHERE TIME(timestamp) BETWEEN "09:15:00" and "15:30:00"'

推荐阅读