<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        [MySQL]--)查詢5天之內過生日的同事中的跨年問題的解決過程_MySQL

        來源:懂視網 責編:小采 時間:2020-11-09 19:43:44
        文檔

        [MySQL]--)查詢5天之內過生日的同事中的跨年問題的解決過程_MySQL

        [MySQL]--)查詢5天之內過生日的同事中的跨年問題的解決過程_MySQL:前言: 遇到朋友提問,如下: SELECT * FROM ali_users WHERE DATEDIFF(CAST(CONCAT(DATE_FORMAT(NOW(),'%y'),DATE_FORMAT(birthday,'-%m-%d'))AS DATE),CAST(DATE_FORMAT(NOW(),&#
        推薦度:
        導讀[MySQL]--)查詢5天之內過生日的同事中的跨年問題的解決過程_MySQL:前言: 遇到朋友提問,如下: SELECT * FROM ali_users WHERE DATEDIFF(CAST(CONCAT(DATE_FORMAT(NOW(),'%y'),DATE_FORMAT(birthday,'-%m-%d'))AS DATE),CAST(DATE_FORMAT(NOW(),&#

        前言:

        遇到朋友提問,如下:

        SELECT * FROM ali_users WHERE DATEDIFF(CAST(CONCAT(DATE_FORMAT(NOW(),'%y'),DATE_FORMAT(birthday,'-%m-%d'))AS DATE),CAST(DATE_FORMAT(NOW(),'%y-%m-%d') AS DATE)) <=1

        1,準備測試數據,需要包含跨年的數據

        1.1,準備測試數據的SQL

        USE test;
        DROP TABLE IF EXISTS ali_users;
        CREATE TABLE ali_users (username VARCHAR(10),birthday DATE NOT NULL,iphone VARCHAR(16));
        INSERT INTO ali_users SELECT \'MaoYi\',\'1985-09-04\',\'13998786543\' UNION ALL
        SELECT \'LiuEr\',\'1985-08-30\',\'13998786543\' UNION ALL
        SELECT \'ZhangSan\',\'1981-01-01\',\'13998786543\' UNION ALL
        SELECT \'LiSi\',\'1983-01-02\',\'13998786543\' UNION ALL
        SELECT \'WangWu\',\'1984-11-01\',\'13998786543\' UNION ALL
        SELECT \'ZhaoLiu\',\'1984-11-01\',\'13998786543\' UNION ALL
        SELECT \'SongQi\',\'1986-08-31\',\'13998786543\' UNION ALL
        SELECT \'HuangBa\',\'1989-09-01\',\'13998786543\' UNION ALL
        SELECT \'ZengJiu\',\'1989-09-02\',\'13998786543\' UNION ALL
        SELECT \'LuoShi\',\'1985-09-03\',\'13998786543\' UNION ALL
        SELECT \'Tom\',\'1995-09-05\',\'13998786543\' UNION ALL
        SELECT \'Licy\',\'1991-12-30\',\'13998286543\' UNION ALL
        SELECT \'Cari\',\'1992-12-31\',\'13998286543\' UNION ALL
        SELECT \'Mark\',\'1992-01-03\',\'13998286543\' UNION ALL
        SELECT \'Ruby\',\'1992-01-04\',\'13998286547\';
        1.2,在數據庫命令行執行SQL

        mysql> USE test;
        DATABASE CHANGED
        mysql> DROP TABLE IF EXISTS ali_users;
        QUERY OK, 0 ROWS affected (0.00 sec)

        mysql> CREATE TABLE ali_users (username VARCHAR(10),birthday DATE NOT NULL,iphone VARCHAR(16));
        QUERY OK, 0 ROWS affected (0.01 sec)

        mysql> INSERT INTO ali_users SELECT \'MaoYi\',\'1985-09-04\',\'13998786543\' UNION ALL
        -> SELECT \'LiuEr\',\'1985-08-30\',\'13998786543\' UNION ALL
        -> SELECT \'ZhangSan\',\'1981-01-01\',\'13998786543\' UNION ALL
        -> SELECT \'LiSi\',\'1983-01-02\',\'13998786543\' UNION ALL
        -> SELECT \'WangWu\',\'1984-11-01\',\'13998786543\' UNION ALL
        -> SELECT \'ZhaoLiu\',\'1984-11-01\',\'13998786543\' UNION ALL
        -> SELECT \'SongQi\',\'1986-08-31\',\'13998786543\' UNION ALL
        -> SELECT \'HuangBa\',\'1989-09-01\',\'13998786543\' UNION ALL
        -> SELECT \'ZengJiu\',\'1989-09-02\',\'13998786543\' UNION ALL
        -> SELECT \'LuoShi\',\'1985-09-03\',\'13998786543\' UNION ALL
        -> SELECT \'Tom\',\'1995-09-05\',\'13998786543\' UNION ALL
        -> SELECT \'Licy\',\'1991-12-30\',\'13998286543\' UNION ALL
        -> SELECT \'Cari\',\'1992-12-31\',\'13998286543\' UNION ALL
        -> SELECT \'Mark\',\'1992-01-03\',\'13998286543\' UNION ALL
        -> SELECT \'Ruby\',\'1992-01-04\',\'13998286547\';
        QUERY OK, 15 ROWS affected (0.01 sec)
        Records: 15 Duplicates: 0 WARNINGS: 0

        mysql> SELECT * FROM ali_users;
        +----------+------------+-------------+
        | username | birthday | iphone |
        +----------+------------+-------------+
        | MaoYi | 1985-09-04 | 13998786543 |
        | LiuEr | 1985-08-30 | 13998786543 |
        | ZhangSan | 1981-01-01 | 13998786543 |
        | LiSi | 1983-01-02 | 13998786543 |
        | WangWu | 1984-11-01 | 13998786543 |
        | ZhaoLiu | 1984-11-01 | 13998786543 |
        | SongQi | 1986-08-31 | 13998786543 |
        | HuangBa | 1989-09-01 | 13998786543 |
        | ZengJiu | 1989-09-02 | 13998786543 |
        | LuoShi | 1985-09-03 | 13998786543 |
        | Tom | 1995-09-05 | 13998786543 |
        | Licy | 1991-12-30 | 13998286543 |
        | Cari | 1992-12-31 | 13998286543 |
        | Mark | 1992-01-03 | 13998286543 |
        | Ruby | 1992-01-04 | 13998286547 |
        +----------+------------+-------------+
        15 ROWS IN SET (0.00 sec)

        mysql>
        2,寫出查詢SQL
        SELECT * FROM ali_users WHERE
        2,1,跨年問題分析
        因為跨年的時候生日字段通常月份比較小是1月,所以如果利用DATEDIFF來判斷要與月份比較大12月來比較得到相差天數在N天之內的話,就需要YEAR(NOW())+1,當年年份+1再加上月份才能與NOW()比較得出真實的相差天數。
        2.2,5天之內的設定
        N天之內,用 BETWEEN 0 AND N 來判斷,如果是5天之內(包含今天)那么N值就是4,就是 BETWEEN 0 AND 4
        3,驗證數據
        比如提醒最近5天之內(包括今日)過生日的同事,生日快樂。
        3.1,查詢的數據都在今年之內的,比如今天是8月30日,那么需要執行的SQL如下:
        SELECT * FROM ali_users WHERE
        查詢的結果應該是從今天8月30日到9月3日之間過生日的同事,包括LiuEr,SongQi,HuangBa,ZengJiu,LuoShi;

        mysql> SELECT * FROM ali_users WHERE
        -> DATEDIFF(CAST(CONCAT(YEAR(NOW()),DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(NOW(),\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4
        -> OR/* or后面的是捎帶解決跨年問題*/
        -> DATEDIFF(CAST(CONCAT(YEAR(NOW())+1,DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(NOW(),\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4
        -> ;
        +----------+------------+-------------+
        | username | birthday | iphone |
        +----------+------------+-------------+
        | LiuEr | 1985-08-30 | 13998786543 |
        | SongQi | 1986-08-31 | 13998786543 |
        | HuangBa | 1989-09-01 | 13998786543 |
        | ZengJiu | 1989-09-02 | 13998786543 |
        | LuoShi | 1985-09-03 | 13998786543 |
        +----------+------------+-------------+
        5 ROWS IN SET (0.00 sec)

        mysql>
        3.2,查詢的生日有跨年的
        比如今天是2013年12月30日,要查詢5天之內過生日的同事,那么就有2013年的12月30日31日過生日的,也有2014年1月1日2日3日過生日的同事,因為今天是8月30日,所以要把Step#2中的SQL的NOW()改成'2013-12-30 00:10:10'來進行測試,SQL整理如下:
        mysql> SELECT * FROM ali_users WHERE
        -> DATEDIFF(CAST(CONCAT(YEAR(\'2013-12-30 00:10:10\'),DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2013-12-30 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4
        -> OR/* or后面的是捎帶解決跨年問題*/
        -> DATEDIFF(CAST(CONCAT(YEAR(\'2013-12-30 00:10:10\')+1,DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2013-12-30 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4
        -> ;
        +----------+------------+-------------+
        | username | birthday | iphone |
        +----------+------------+-------------+
        | ZhangSan | 1981-01-01 | 13998786543 |
        | LiSi | 1983-01-02 | 13998786543 |
        | Licy | 1991-12-30 | 13998286543 |
        | Cari | 1992-12-31 | 13998286543 |
        | Mark | 1992-01-03 | 13998286543 |
        +----------+------------+-------------+
        5 ROWS IN SET (0.00 sec)

        mysql>
        4,總結

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        [MySQL]--)查詢5天之內過生日的同事中的跨年問題的解決過程_MySQL

        [MySQL]--)查詢5天之內過生日的同事中的跨年問題的解決過程_MySQL:前言: 遇到朋友提問,如下: SELECT * FROM ali_users WHERE DATEDIFF(CAST(CONCAT(DATE_FORMAT(NOW(),'%y'),DATE_FORMAT(birthday,'-%m-%d'))AS DATE),CAST(DATE_FORMAT(NOW(),&#
        推薦度:
        標簽: 過程 生日 同事
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 一级毛片a免费播放王色| 亚洲视频一区二区在线观看| 亚洲精品无码中文久久字幕| 国产2021精品视频免费播放| 亚洲最大在线观看| 国产精品久久久久免费a∨ | 亚洲欧洲精品成人久久奇米网| 亚洲AV无码一区二区三区牲色 | 亚洲尤码不卡AV麻豆| 两个人看的www免费视频中文| 亚洲国产精品一区二区久久hs | 成人久久免费网站| 久久久久久久久亚洲| 99久久免费观看| 亚洲国产精品久久久久秋霞影院| 18禁免费无码无遮挡不卡网站| 亚洲综合一区国产精品| 国产不卡免费视频| 9久热这里只有精品免费| 亚洲福利在线视频| 久草在视频免费福利| 国产亚洲精品美女久久久久| 亚洲AV无码乱码在线观看牲色| 国产伦精品一区二区免费| 午夜亚洲AV日韩AV无码大全| 一级女人18毛片免费| 国产精品亚洲а∨天堂2021| 久久亚洲国产午夜精品理论片| 2015日韩永久免费视频播放| 国产精品亚洲专一区二区三区| 久久九九亚洲精品| 嫩草影院免费观看| 国产免费黄色无码视频| 亚洲中文字幕久在线| 国产一级特黄高清免费大片| 日韩免费的视频在线观看香蕉| 色天使亚洲综合在线观看| 亚洲中久无码不卡永久在线观看| 最近中文字幕高清免费中文字幕mv| 亚洲av无码成人精品区一本二本| 国产亚洲精品成人AA片新蒲金|