怎么用sql查询昨天,今天,明天和本周的记录
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。
2、之后在该界面中,点击左上角“新建查询”选项。
3、接着在该界面中,输入昨天,今天,明天和本周的记录的sql语句“select * from test2 where time = DATEADD( day,-1, convert(varchar(10),getdate(),120) ); select * from test2 where time= DATEADD( day,0, convert(varchar(10),getdate(),120) ); select * from test2 where time> DATEADD( day,-6, convert(varchar(10),getdate(),120) );”。
4、然后在该界面中,点击左上方“执行”按钮。
5、最后在该界面中,显示昨天,今天,明天和本周的记录成功。
2017-06-15 · 知道合伙人软件行家
sql查询昨天,今天,明天和本周记录的方法
一、昨天,今天,明天和本周在SQL的处理中都是一个时间段,比如昨天指的就是昨天的:0点0分0秒到23点59分59秒。
二、例如表格:ygsrb
1、查询今天的记录:
其中getdate()是系统当前的时间,因为它包含是小时、分钟等,所以先使用convert()函数从getdate()返回的时间截取日期部分。
①、convert(char(10),getdate(),120):返回当前时间的日期部分“2017-06-15”
②、convert(datetime,convert(char(10),getdate(),120)+' 00:00:00',120):把拼接好的时间 “2017-06-15 00:00:00”转换成datetime 数据类型。
2、查询昨天的记录:
与查询今天记录的语句不同的是,把getdate()换成了dateadd(dd,-1,getdate())
①、dateadd(dd,-1,getdate()):使用了dateadd函数,把当前的时间减一天。函数的参数DD指计算单位是天。
3、查询明天的记录:
明天和昨天刚好相反,昨天是今天的时间减一天,明天就是今天的时间加一天
dateadd(dd,1,getdate())
4、查询本周的的记录:
本周即所在周的周日到周六,那么就需要要获取周日和周六的时间。
①datepart(weekday,getdate()):使用datepart函数获取当前时间是周几。
比如当前是周四返回 5,因为周日是1,那么今天的时间减4天就是周日,即:dateadd(dd,- datepart(weekday,getdate()) + 1,getdate())
②周六则是7-5 = 2,今天的时间加两天,即:dateadd(dd,7 - datepart(weekday,getdate()),getdate())
datediff(day,[Datetime],getdate())=0 把Datetime换为你的相应字段;
SQL查询昨天的记录:
datediff(day,[Datetime],getdate())=1 把Datetime换为你的相应字段,getdate()-Datetime即为时间差。
本月记录:
SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0
本周记录:
SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0
本日记录:
SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate())=0
一天
select * from T_news where datediff(day,addtime,getdate())=0
三天
select * from T_news where datediff(day,addtime,getdate())<= 2 and datediff(day,addtime,getdate())>= 0
一周
select * from T_news WHERE (DATEPART(wk, addtime) = DATEPART(wk, GETDATE())) AND (DATEPART(yy, addtime) = DATEPART(yy, GETDATE()))
注意:此时不能用 datediff 差值为7,因为,datediff只表示间隔数
一月
select * from T_news WHERE (DATEPART(yy, addtime) = DATEPART(yy, GETDATE())) AND (DATEPART(mm, addtime) = DATEPART(mm, GETDATE()))
一季度
select * from T_news where DATEPART(qq, addtime) = DATEPART(qq, GETDATE()) and DATEPART(yy, addtime) = DATEPART(yy, GETDATE())
一些自己的笔记分享给大家
查询当前这周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
查询上周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
查询当前月份的数据
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
查询距离当前现在6个月的数据
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
查询上个月的数据
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')
select * from `user` where DATE_FORMAT(pudate,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') ;
select * from user where WEEKOFYEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = WEEKOFYEAR(now())
select *
from user
where MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now())
select *
from [user]
where YEAR(FROM_UNIXTIME(pudate,'%y-%m-%d')) = YEAR(now())
and MONTH(FROM_UNIXTIME(pudate,'%y-%m-%d')) = MONTH(now())
select *
from [user]
where pudate between 上月最后一天
and 下月第一天
比如2017-04-18,获取00:00的时间戳和23:59的时间戳
查询语句where用时间字段查询,时间大于00:00时间戳并且小于23:59时间戳的所有记录是今天的。
明天和本周的方法,同上。
广告 您可能关注的内容 |