SQL查询今天、昨天、本周、上周、本月、上月数据

    xiaoxiao2022-06-25  243

    MYSQL数据库:

    查询当天的所有数据

    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=0

     

    查询昨天的所有数据

    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1

     

    查询未来第n天的所有数据

    //当n为负数时,表示过去第n天的数据

    SELECT * FROM 表名WHERE DATEDIFF(字段,NOW())=n

     

    查询未来n天内所有数据

    //n天内

    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<n AND DATEDIFF(字段,NOW())>=0

     

    查询过去n天内所有数据

    //包含当天

    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<=0 AND DATEDIFF(字段,NOW())>-n

    //不包含当天

    SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())<0 AND DATEDIFF(字段,NOW())>-n

    ——————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————

    Oracle数据库:

    查询今天数据:

    SELECT COUNT(*) FROM 表名 WHERE TO_CHAR(T_RKSJ,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD')

    查询昨天数据:

    SELECT COUNT(*) FROM  表名 WHERE TO_CHAR(T_RKSJ,'YYYY-MM-DD')=TO_CHAR(SYSDATE-1,'YYYY-MM-DD')

    查询本周数据:

    SELECT COUNT(*) FROM 表名 WHERE T_RKSJ >= TRUNC(NEXT_DAY(SYSDATE-8,1)+1) AND T_RKSJ < TRUNC(NEXT_DAY(SYSDATE-8,1)+7)+1

    查询上周数据:

    SELECT COUNT(*) FROM 表名 WHERE T_RKSJ >= TRUNC(NEXT_DAY(SYSDATE-8,1)-6) AND T_RKSJ < TRUNC(NEXT_DAY(SYSDATE-8,1)+1)

    查询本月数据:

    SELECT COUNT(*) FROM 表名 WHERE TO_CHAR(T_RKSJ,'YYYY-MM')=TO_CHAR(SYSDATE,'YYYY-MM')

    查询上月数据:

    SELECT COUNT(*) FROM 表名 WHERE TO_CHAR(T_RKSJ,'YYYY-MM')=TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM')

    备注:NEXT_DAY(SYSDATE,1)函数为当前系统时间的下个星期日时间,数字1代表星期日;

     

     


    最新回复(0)