我正在尝试从时间在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)
TIA
答案 0 :(得分:2)
您的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"'
答案 1 :(得分:1)
对于使用pandas
进行帖子过滤,可以使用DataFrame.between_time
方法。这需要DatatimeIndex
,因此,首先set_index
至您的时间戳列:
df.set_index('timestamp').between_time("09:15:00", "15:30:00")