真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在sql中實(shí)現(xiàn)日期自動(dòng)補(bǔ)全

這篇文章將為大家詳細(xì)講解有關(guān)如何在sql中實(shí)現(xiàn)日期自動(dòng)補(bǔ)全,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

十年的獨(dú)山子網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整獨(dú)山子建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“獨(dú)山子網(wǎng)站設(shè)計(jì)”,“獨(dú)山子網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

最近在開發(fā)統(tǒng)計(jì)訪問功能時(shí),如果數(shù)據(jù)表里缺少某一天的數(shù)據(jù),就會(huì)導(dǎo)致那天的記錄丟失,但顯示的時(shí)候還是需要那天的數(shù)據(jù),沒有的話,可以默認(rèn)為 0,大概想到了兩種解決辦法:

1. 將數(shù)據(jù)讀出來(lái)后,在程序循環(huán)添加缺少的數(shù)據(jù),但是這對(duì)于統(tǒng)計(jì)數(shù)據(jù)范圍可變的需求,可能統(tǒng)計(jì) 7 天,30 天,60 天;通過(guò)程序來(lái)補(bǔ)全數(shù)據(jù)就顯得有點(diǎn)麻煩了。

2. 首先生成某個(gè)范圍的日歷表數(shù)據(jù),再通過(guò)這個(gè)日歷表連接查詢需要統(tǒng)計(jì)數(shù)據(jù)表的數(shù)據(jù),沒有的話,默認(rèn)為 0;這樣就可以得出這個(gè)范圍內(nèi)完整的數(shù)據(jù)了,所以這種方案,更適合這種需求的變化。

現(xiàn)在通過(guò)如下 sql 語(yǔ)句生成日歷表:

CREATE TABLE num (i INT);-- 創(chuàng)建一個(gè)表用來(lái)儲(chǔ)存0-9的數(shù)字
INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);-- 生成0-9的數(shù)字,方便以后計(jì)算時(shí)間
CREATE TABLE  IF NOT EXISTS calendar(DATE DATE); -- 生成一個(gè)存儲(chǔ)日期的表,date是字段名
-- 這里是生成并插入日期數(shù)據(jù)
INSERT INTO calendar(DATE) SELECT
    ADDDATE(
        (   -- 起始日期,從2017-1-1開始
            DATE_FORMAT("2017-1-1", '%Y-%m-%d')
        ),
        numlist.id
    ) AS `date`
FROM
    (
        SELECT
            n1.i + n10.i * 10 + n100.i * 100 + n1000.i * 1000 AS id
        FROM
            num n1
        CROSS JOIN num AS n10
        CROSS JOIN num AS n100
        CROSS JOIN num AS n1000
    ) AS numlist;

執(zhí)行 sql 后生成 1W 條記錄,從2017-01-01~2044-05-18,這些數(shù)據(jù)已經(jīng)足夠用很久了;也可以通過(guò)修改相對(duì)應(yīng)的條件,生成更多的數(shù)據(jù),這里就不詳細(xì)說(shuō)明了,根據(jù)需求修改就行。

執(zhí)行如下 sql 測(cè)試:

SELECT COUNT(u.id) AS num, c.date FROM calendar AS c
LEFT JOIN users AS u ON c.date = u.`created_at`
WHERE c.date BETWEEN '2017-05-01' AND '2017-05-07'
GROUP BY c.`date`
ORDER BY c.`date`

得出如下結(jié)果:

如何在sql中實(shí)現(xiàn)日期自動(dòng)補(bǔ)全

關(guān)于如何在sql中實(shí)現(xiàn)日期自動(dòng)補(bǔ)全就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


名稱欄目:如何在sql中實(shí)現(xiàn)日期自動(dòng)補(bǔ)全
網(wǎng)站地址:http://weahome.cn/article/pcghgo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部