美文网首页开心学前端【HTML5】我用Python
flask SQLAlchemy查询数据库最近30天,一个月,一

flask SQLAlchemy查询数据库最近30天,一个月,一

作者: 程序员八阿哥 | 来源:发表于2020-08-14 10:44 被阅读0次
    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 关于日期的查询

    # 近七天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' )"  
    

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

    相关文章

      网友评论

        本文标题:flask SQLAlchemy查询数据库最近30天,一个月,一

        本文链接:https://www.haomeiwen.com/subject/xyqgdktx.html