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

本文介绍了如何使用MYSQL和Oracle数据库的SQL查询来获取今天、昨天、本周、上周、本月和上月的数据。在MYSQL中,主要利用DATEDIFF函数结合NOW()进行筛选;而在Oracle中,通过TO_CHAR和相关日期函数如SYSDATE、TRUNC、NEXT_DAY等实现日期范围的查询。示例查询包括了不同时间段的数据计数方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值