python-SQLAlchemy-如何获取最新记录的1分钟内和同一分钟内的所有记录?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-SQLAlchemy-如何获取最新记录的1分钟内和同一分钟内的所有记录?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1953字,纯文字阅读大概需要3分钟。
内容图文
![python-SQLAlchemy-如何获取最新记录的1分钟内和同一分钟内的所有记录?](/upload/InfoBanner/zyjiaocheng/882/ac76aee9c3504291bc2bb607f5883804.jpg)
我的表有一个datetime列,该列记录更新行的时间;称为col_datetime.我需要在col_datetime中获取具有最新datetime的行,以及该记录在一分钟内且具有相同分钟的所有其他记录.例:
pk | first | col_datetime
1 Dave 2014-03-23 8:23:57
2 Dan 2014-03-23 8:22:59
3 Teresa 2014-03-23 8:23:01
4 Marge 2013-03-23 8:23:08
就我而言,我需要查询返回第1行和第3行(即使第2行在记录#1的1分钟之内,也不是同一分钟.同样,第4行的记录也相同,但是是一年)之前).
我在mysql中的尝试仅返回第1行(尽管我需要SQLAlchemy的解决方案):
SELECT * FROM (SELECT * FROM `mytable`
ORDER BY col_datetime DESC LIMIT 1) as sub
WHERE col_datetime >= sub.col_datetime - INTERVAL 1 MINUTE
AND EXTRACT(MINUTE FROM col_datetime) = EXTRACT(MINUTE FROM sub.col_datetime)
感谢您的帮助!
解决方法:
此sql查询将返回正确的数据:
select * from foo;
+----+--------+---------------------+
| id | name | col_date |
+----+--------+---------------------+
| 1 | Bob | 2014-04-05 19:57:53 |
| 2 | Robert | 2014-04-05 19:58:15 |
| 3 | Fred | 2014-04-05 19:58:25 |
| 4 | Frank | 2014-04-05 19:58:48 |
+----+--------+---------------------+
select foo.*
from foo,
(select convert( DATE_FORMAT(max(col_date), '%Y-%m-%d %H:%i:00'), DATETIME) as minute_base from foo) b
where foo.col_date >= b.minute_base and
foo.col_date < b.minute_base + INTERVAL 1 MINUTE;
Sqlalchemy不支持开箱即用的服务器端功能,例如DATE_FORMAT或INTERVAL.为此,请在服务器端创建自定义sql结构(SQLAlchemy datetime operations on server side).
在客户端有两个查询:
minute = conn.execute(select([func.max(foo.c.col_date, type=DateTime)])).scalar().replace(second=0)
max_minute = minute + datetime.timedelta(minutes=1)
conn.execute(select([foo])....: where(foo.c.col_date >= minute)....: where(foo.c.col_date < max_minute)).fetchall()
[(2, 'Robert', datetime.datetime(2014, 4, 5, 19, 58, 15)),
(3, 'Fred', datetime.datetime(2014, 4, 5, 19, 58, 25)),
(4, 'Frank', datetime.datetime(2014, 4, 5, 19, 58, 48))]
PS max_minute可能会过大.
内容总结
以上是互联网集市为您收集整理的python-SQLAlchemy-如何获取最新记录的1分钟内和同一分钟内的所有记录?全部内容,希望文章能够帮你解决python-SQLAlchemy-如何获取最新记录的1分钟内和同一分钟内的所有记录?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。