前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >flask SQLAlchemy查询数据库最近30天,一个月,一周,12小时或之前的数据

flask SQLAlchemy查询数据库最近30天,一个月,一周,12小时或之前的数据

作者头像
Python之道
发布2020-08-17 15:36:46
2.9K0
发布2020-08-17 15:36:46
举报
文章被收录于专栏:程序员八阿哥程序员八阿哥

xx

最近项目涉及需求,前端有个 最新 的按钮

就是查询数据库 最近一个月的数据 这里是使用SQLAlchemy使用的

当然我们可能经常涉及一些数据库查询最近30天,一个月,一周,12小时或者半小时

或者 一天 一周 一个月之前的的数据

** 这里主要整理下 SQLAlchemy 与原生的sql查询两种方式**

首先获取当前的日期

image

这里需要注意的是 服务器是否与当前实际时间一致

因为是基于docker部署项目 服务器获取的时间与本地时间一致。

image

**这样就可以获取当前近30条数据 **

**常用的查询整理如下(基于SQLALCHEMY) **

最近:

from datetime import datetime, timedelta NOW = datetime.now() 最近30天数据 macroEconomyTable = Scrapy.query.filter(Scrapy.date >= NOW - timedelta(days=30)).all() 最近一周数据 macroEconomyTable = Scrapy.query.filter(Scrapy.date >= NOW - timedelta(days=7)).all() 最近1天数据 macroEconomyTable = Scrapy.query.filter(Scrapy.date >= NOW - timedelta(days=1)).all() 最近12小时 macroEconomyTable = Scrapy.query.filter(Scrapy.date >= NOW - timedelta(hours=12)).all() 最近半小时 macroEconomyTable = Scrapy.query.filter(Scrapy.date >= NOW - timedelta(seconds=30)).all()

之前:

from datetime import datetime, timedelta NOW = datetime.now() 30天之前 macroEconomyTable = Scrapy.query.filter(Scrapy.date <= NOW - timedelta(days=30)).all() 一周之前 macroEconomyTable = Scrapy.query.filter(Scrapy.date <= NOW - timedelta(days=7)).all() 1天之前 macroEconomyTable = Scrapy.query.filter(Scrapy.date <= NOW - timedelta(days=1)).all() 12小时之前 macroEconomyTable = Scrapy.query.filter(Scrapy.date <= NOW - timedelta(hours=12)).all() 半小时之前 macroEconomyTable = Scrapy.query.filter(Scrapy.date <= NOW - timedelta(seconds=30)).all()

下面是整理的一些基于原生的sql 关于日期的查询

代码语言:javascript
复制
 # 近七天macroEconomyTable = "SELECT * FROM scrapy_info where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(add_time)" # 近30天macroEconomyTable = "SELECT * FROM scrapy_info where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(add_time)" # 今天macroEconomyTable = "select * from scrapy_info where to_days(add_time) = to_days(now())"# 本周macroEconomyTable = "SELECT * FROM scrapy_info WHERE YEARWEEK(date_format(add_time,'%Y-%m-%d')) = YEARWEEK(now())" # 本月macroEconomyTable = "SELECT * FROM scrapy_info WHERE DATE_FORMAT(add_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )"  

这些基本就够使用了 具体的根据情况而定 主要是掌握规则就可以了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档