zoukankan      html  css  js  c++  java
  • 【数据库】 MySQL中查询当前时间间隔前1天的数据

    1.背景

    实际项目中我们都会遇到分布式定时任务执行的情况,有时定时任务执行的时候如果查询的数据量比较大时,我们会选择执行时间间隔几天前的数据筛选后进行执行

    避免执行全量的数据导致内存占用过大或执行时间过长导致OOM等问题。

    这里我们就会用到SQL来过滤当前时间间隔1天或几天的查询。

    1.1.查询SQL语句

    这里用到一张talk_course表作为查询sql语句的执行表单,表的字段如下:

    表中大致有如下几条测试数据:

    查询距离当前执行时间前一天的SQL语句如下:

    # 查询距离当前时间前1天的数据
    SELECT * FROM `talk_course` t
    WHERE t.createTime <= NOW() 
    AND t.createTime >= date_sub(now(), interval 1 day);

    查询结果:

    查询当前时间的前一天的时间:

    # 查询当前时间的前一天的时间
    SELECT date_sub(now(),interval 1 day) as yesterday

    1.2.查询语句分析

    这里用到了两个函数:

    DATE_ADD(date,INTERVAL expr unit)
    DATE_SUB(date,INTERVAL expr unit)

    DATE_ADD() 函数向日期添加指定的时间间隔。

    DATE_SUB() 函数向日期减少指定的时间间隔。

    其中 expr 参数是您希望添加的时间间隔。

    type 参数可以是下列值:

    Type 值
    MICROSECOND
    SECOND
    MINUTE
    HOUR
    DAY
    WEEK
    MONTH
    QUARTER
    YEAR
    SECOND_MICROSECOND
    MINUTE_MICROSECOND
    MINUTE_SECOND
    HOUR_MICROSECOND
    HOUR_SECOND
    HOUR_MINUTE
    DAY_MICROSECOND
    DAY_SECOND
    DAY_MINUTE
    DAY_HOUR
    YEAR_MONTH
  • 相关阅读:
    web框架本质及第一个Django实例
    jQuery练习题HTML文件
    jQuery快速入门
    前端之JS
    前端基础之HTML
    前端基础之css
    并发编程之 协程
    Linux目录结构详解
    第三周 time库
    网络打印机拒绝访问,无法连接处理方法汇总
  • 原文地址:https://www.cnblogs.com/yif0118/p/15659617.html
Copyright © 2011-2022 走看看