怎么用sql查询昨天,今天,明天和本周的记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用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、最后在该界面中,显示昨天,今天,明天和本周的记录成功。

参考技术A

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())

参考技术B SQL查询今天的记录:
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())本回答被提问者和网友采纳
参考技术C

一些自己的笔记分享给大家

查询当前这周的数据 
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 下月第一天

参考技术D 首先,用php获取今天的时间戳:
比如2017-04-18,获取00:00的时间戳和23:59的时间戳
查询语句where用时间字段查询,时间大于00:00时间戳并且小于23:59时间戳的所有记录是今天的。
明天和本周的方法,同上。

以上是关于怎么用sql查询昨天,今天,明天和本周的记录的主要内容,如果未能解决你的问题,请参考以下文章

SQL 查询今天、昨天、7天内、30天的数据

Sql Server中查询今天昨天本周上周本月上月数据

sql语句获取今天昨天近7天本周上周本月上月半年数据

SQL语句获取当天,昨天,本周,上周,本月,上月的起始时间和结束时间

MySQL数据库中SQL对日期查询相关操作

Sql Server日期查询-SQL查询今天昨天7天内30天