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

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())=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代表星期日;

 

 

你可能感兴趣的:(SQL)