溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql中如何查詢一段時(shí)間的日期

發(fā)布時(shí)間:2021-11-06 14:13:37 來(lái)源:億速云 閱讀:643 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章給大家分享的是有關(guān)mysql中如何查詢一段時(shí)間的日期的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

mysql中查詢一段時(shí)間的日期,要把沒(méi)數(shù)據(jù)的日期也展示出來(lái)的方法如下:<h2 class="csdn_top" line-height:38px;color:#2C3033;padding:0px 29px;white-space:normal;"> mysql獲取兩個(gè)日期內(nèi)的所有日期列表:
select  t1.create_time ,ifnull(t2.yuyin_order_nums,0)yuyin_order_nums,IFNULL(t2.yuyin_ordersuccess_nums,0) yuyin_ordersuccess_nums,
ifnull(t2.yuyin_percent,'0.00%')yuyin_percent,ifnull(t2.yuyin_deal_nums,0)yuyin_deal_nums,
ifnull(t3.shaoma_order_nums,0)shaoma_order_nums,IFNULL(t3.shaoma_ordersuccess_nums,0) shaoma_ordersuccess_nums,
ifnull(t3.shaoma_percent,'0.00%')shaoma_percent,ifnull(t3.shaoma_deal_nums,0)shaoma_deal_nums
 from  
(select @num:=@num+1,date_format(adddate('2017-10-01', INTERVAL @num DAY)-1,'%Y-%m-%d') as create_time
from np_order,(select @num:=0) t where adddate('2017-10-01', INTERVAL @num DAY) <= date_format('2017-11-01','%Y-%m-%d')
order by create_time ) t1
LEFT JOIN 
(
select  DATE_FORMAT(m.create_time,'%Y-%m-%d') create_time ,count(1) yuyin_order_nums ,
sum(
CASE  when  m.order_status ='2' then 
1
ELSE
0
end ) yuyin_ordersuccess_nums,


 concat(FORMAT(( 
sum(
CASE  when  m.order_status ='2' then 
1
ELSE
0
end )/count(1))*100,2),'%')  yuyin_percent,


sum(
CASE  when  m.order_status ='4' then 
1
ELSE
0
end ) yuyin_deal_nums


from  np_order  m  where  m.order_m_type in ('19')
and   m.create_time >='2017-08-01'
and   m.create_time <'2017-11-01'
group by DATE_FORMAT(m.create_time,'%Y-%m-%d') ) t2
on  t1.create_time =t2.create_time 
LEFT JOIN 
(
select  DATE_FORMAT(m.create_time,'%Y-%m-%d') create_time ,count(1) shaoma_order_nums ,
sum(
CASE  when  m.order_status ='2' then 
1
ELSE
0
end ) shaoma_ordersuccess_nums,


 concat(FORMAT(( 
sum(
CASE  when  m.order_status ='2' then 
1
ELSE
0
end )/count(1))*100,2),'%')  shaoma_percent,


sum(
CASE  when  m.order_status ='4' then 
1
ELSE
0
end ) shaoma_deal_nums


from  np_order  m  where  m.order_m_type in ('20')
and   m.create_time >='2017-08-01'
and   m.create_time <'2017-11-01'
group by DATE_FORMAT(m.create_time,'%Y-%m-%d') ) t3
on t1.create_time =t3.create_time
order by t1.create_time ;

此方法優(yōu)點(diǎn)就是不需要?jiǎng)?chuàng)建存儲(chǔ)過(guò)程或者是日歷表,缺點(diǎn)就是你必須要有一個(gè)表,它的數(shù)據(jù)條數(shù)大到足夠支撐你要查詢的天數(shù),也就是說(shuō)比如
np_order  表 總條數(shù)是 20條的話,那你查詢的時(shí)間是一個(gè)月,那就需要30條數(shù)據(jù),那最多會(huì)只給你展示20條,所以要保證 np_order 表要超過(guò)你查詢的天數(shù)

感謝各位的閱讀!關(guān)于“mysql中如何查詢一段時(shí)間的日期”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI