【SQL之查询】MySQL查询今天、昨天、上周、近30天、去年等的数据的方法

DATEPART(卡塔尔国函数用于再次来到日期/时间的单独部分,譬如年、月、日、时辰、分钟等等。

一、MySQL查询明天、前不久、上周、近30天、二〇一八年等的数据的法子:

DATEDIFF(卡塔尔国 函数再次回到四个日子之间的时光差。

 

--查找当天上午的数据 select * from R_Attendance where (datepart(hour,RDatetime)=0 and datepart(hour,RDatetime)12) and datediff(d,RDatetime,GetDate())=0 --查找当天下午的数据 select * from R_Attendance where (datepart(hour,RDatetime)12 and datepart(hour,RDatetime)=23) and datediff(d,RDatetime,GetDate())=0 
 

算算八个时间差

除去建立刻间超越3天的订单记录

 

delete 订单表 where datediff( dd, order_addtime, getdate(卡塔尔(قطر‎ 卡塔尔(قطر‎ > 3
用函数datediff(卡塔尔国 datediff( dd, 时间1, 时间2
卡塔尔,意思是:总结时间1届期刻2里面包车型大巴运气 所以,datediff( dd,
order_addtime, getdate(State of Qatar 卡塔尔 > 3,正是超过3天的

今天  

select * from 表名 where to_days(时间字段名卡塔尔国 = to_days(now());  
昨天  
SELECT * FROM 表名 WHERETO_DAYS(NOW( ) ) – TO_DAYS(
时间字段名) <= 1  
7天  
SELECT * FROM 表名 whereDATE_SUB(CURDATE(), INTERVAL 7 DAY)
<=date(时间字段名卡塔尔国  
近30天  
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY)
<=date(时间字段名卡塔尔  
本月  
SELECT * FROM 表名 WHEREDATE_FORMAT( 时间字段名, ‘%Y%m’ 卡塔尔(قطر‎=DATE_FORMAT( CURDATE( ) , ‘%Y%m’ )  
上一月  
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , ‘%Y%m’ )
, date_format( 时间字段名, ‘%Y%m’ 卡塔尔 State of Qatar =1  
#询问明年数据  
select * from `ht_invoice_information`
whereQUARTER(create_date)=QUARTER(now());  
#询问上季度数据  
select * from `ht_invoice_information` where
QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));  
#询问今年数据  
select * from `ht_invoice_information` where
YEAR(create_date)=YEAR(NOW());  
#查询下年数据  
select * from `ht_invoice_information` where
year(create_date)=year(date_sub(now(),interval 1 year));  
查询当前上周的数码   
SELECT name,submittime FROM enterprise WHERE
YEARWEEK(date_format(submittime,’%Y-%m-%d’)) = YEARWEEK(now());  
查询前一周的多少  
SELECT name,submittime FROM enterprise
WHEREYEARWEEK(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’)  
询问间隔当前现行反革命半年的数码  
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 前段时期第一天  
where date(regdate)   =   curdate();  
select   *   from   test   where year(regdate)=year(now())   and
month(regdate)=month(now())   and day(regdate)=day(now())  
SELECT date( c_instime ) ,curdate( )  
FROM `t_score`  
WHERE 1  
LIMIT 0 , 30 

二、相关函数简单介绍

 

相差年数:SELECT DATEDIFF(YEA奥德赛,’2017-07-01 11:25:52′,’2018-07-02
12:25:52’卡塔尔国; 结果:1

0、Sql server中DateDiff()用法



 

DATEDIFF 函数 [日子和岁月]

功能 
回来七个日子之间的间隔。

语法 
DATEDIFF ( date-part, date-expression-1, date-expression-2 )

date-part :
year | quarter | month | week | day | hour | minute | second |
millisecond

参数 
date-part    钦命要测量其间隔的日期部分。

至于日期部分的详细音信,请参见日期部分。

date-expression-1    某一区间的胚胎日期。从 date-expression-第22中学减去该值,再次回到七个参数之间 date-parts 的天意。

date-expression-2    某一间隔的实现日期。从该值中减去
Date-expression-1,再次来到多个参数之间 date-parts 的气数。

用法 
此函数计算五个钦命日期之间日期部分的多寡。结果为日期部分中也正是(date2 –
date1)的有号子的整数值。

当结果不是日期部分的偶好数倍时,DATEDIFF 将被截断实际不是被舍入。

当使用 day 作为日期部分时,DATEDIFF
重临三个钦点的时日里面(包含第三个日子但不包罗率先个日子)的凌晨数。

当使用 month 作为日期部分时,DATEDIFF
重返多少个日子之间(包罗第一个日子但不富含率先个日子)现身的月的首后天的数额。

当使用 week 作为日期部分时,DATEDIFF
重临四个日子(包罗第二个日子但不富含率先个日子)之间周日的数码。

对此越来越小的年月单位存在溢出值:

milliseconds    24 天

seconds    68 年

minutes    4083 年

others    未有溢出限定

若果过量这么些节制,此函数将回到溢出错误。

规范和包容性 
SQL/92    Transact-SQL 扩展。

SQL/99    Transact-SQL 扩展。

Sybase    与 Adaptive Server Enterprise 兼容。

下边示例的言辞再次回到 1:

SELECT datediff( hour, ‘4:00AM’, ‘5:50AM’ 卡塔尔国下边包车型大巴语句再次来到 102:

SELECT datediff( month, ‘壹玖玖零/05/02’, ‘一九九五/11/15’ 卡塔尔国下边包车型地铁说话重回 0:

SELECT datediff( day, ’00:00′, ’23:59′ 卡塔尔(قطر‎下边包车型大巴口舌再次来到 4:

SELECT datediff( day,
   ‘1999/07/19 00:00’,
   ‘1997/07/23 23:59’ State of Qatar上面包车型大巴说话再次来到 0:

SELECT datediff( month, ‘1996/07/19’, ‘1997/07/23’ 卡塔尔上边包车型客车口舌重临 1:

SELECT datediff( month, ‘1999/07/19’, ‘1999/08/23’ )

离开天数:SELECT DATEDIFF(DAY,’2018-07-01 11:25:52′,’2018-07-02
12:25:52’State of Qatar; 结果:1

相距小时:SELECT DATEDIFF(HOUEnclave,’2018-07-01 11:00:00′,’2018-07-01
16:00:00’卡塔尔; 结果:5

相距分数:MINUTE,相差秒数:SECOND,相差月数:MONTH

赢妥帖日、月、年的数码:

基于以上总结时间差,大家得以摄取结果,如下:

当日:SELECT * FROM UserTable WHERE DATEDIFF(DAY, StartTime,
GETDATE())=0

当月:SELECT * FROM UserTable WHERE DATEDIFF(MONTH, StartTime,
GETDATE())=0

当年:SELECT * FROM UserTable WHERE DATEDIFF(YEAR, StartTime,
GETDATE())=0

万一想要获取前一天、月或年等,函数只需等于1就能够,依次类推就可以,反之获得后八个月、年等。函数等于-1,在这就不一一列出了。

总结

上述所述是笔者给大家介绍的sqlserver之datepart和datediff应用查找当天上午和早晨的数据,希望对我们有着支持,假使大家有任何疑问请给自己留言,作者会及时恢复生机我们的。在那也特别谢谢大家对台本之家网站的帮助!假让你以为本文对您有利于,应接转发,烦请表明出处,多谢!

发表评论

电子邮件地址不会被公开。 必填项已用*标注