久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Mysql日期(DATE, TIME, DATETIME, TIMESTAMP)類型的比較

     _明心見(jiàn)性_ 2019-02-21

    最近發(fā)現(xiàn)自己一直以來(lái)經(jīng)常用一種錯(cuò)誤的方法在比較日期,例如一下語(yǔ)句,a字段是一個(gè)DATETIME類型的列:

    select a from t1 where DATEDIFF(a, '2018-09-11') < 0;

    該語(yǔ)句是為了查出2018-09-11 日期之前的所有記錄,但這個(gè)語(yǔ)句有個(gè)問(wèn)題,如果a字段加了索引,用這種類型進(jìn)行日期對(duì)比,會(huì)導(dǎo)致查詢不走索引,從而使查詢性能下降。

    看了Mysql關(guān)于日期字段對(duì)比的文檔。在進(jìn)行日期比較的時(shí)候,mysql會(huì)自動(dòng)將日期轉(zhuǎn)換成數(shù)字進(jìn)行比較。where條件后,使用字符串格式日期與DATE,DATETIME,TIMESTAMP,TIME類型字段進(jìn)行比較的時(shí)候,對(duì)字符串格式要求不嚴(yán)格,你可以使用任意格式的分隔符來(lái)表示日期,例如"2018-09-11","2018#09#11","2018&09&11"對(duì)于mysql來(lái)說(shuō),都是相同的日期。如果沒(méi)有分隔符,例如"20180911",與"2018-09-11"或其他有分隔符的日期,也是相同的。例如下圖

    1. select a from t1 where a < '2018#09#11';
    2. select a from t1 where a < '2018-09-11';
    3. select a from t1 where a < '20180911';
    4. 所代表的意義是相同的,都是查詢?nèi)掌谛∮?018年9月11日的數(shù)據(jù)
    5. 也就是說(shuō)上圖的查詢語(yǔ)句,完全可以重寫(xiě)為,這么做的好處?就是會(huì)使用索引,是查詢更快
    6. select a from t1 where a < '2018-09-11';

    當(dāng)將日期類型字段與字符串型日期進(jìn)行<,>,>=,<=,between比較的時(shí)候,Mysql會(huì)將字符串類型日期轉(zhuǎn)換成長(zhǎng)整型數(shù)字進(jìn)行比較,從而加快查詢速度。

    下面三種情況除外:

    1,兩個(gè)表格字段的對(duì)比;

    2,日期類型字段與表達(dá)式對(duì)比;

    3,使用表達(dá)式對(duì)日期類型字段進(jìn)行對(duì)比;

    原因:對(duì)于以上三種情況,mysql會(huì)將日期轉(zhuǎn)換為字符串進(jìn)行比較。

    下面的例子,都是可以正常運(yùn)行的:

    1. INSERT INTO t1 (testdate) VALUES (20180912);
    2. INSERT INTO t1 (testdate) VALUES ('20180912');
    3. INSERT INTO t1 (testdate) VALUES ('18-09-12');
    4. INSERT INTO t1 (testdate) VALUES ('2018.09.12');
    5. INSERT INTO t1 (testdate) VALUES ('2018 09 12');
    6. INSERT INTO t1 (testdate) VALUES ('0000-00-00');
    7. SELECT testdate FROM t1 WHERE testdate >= '2018-09-12';
    8. SELECT testdate FROM t1 WHERE testdate >= 20180912;
    9. SELECT MOD(testdate,100) FROM t1 WHERE testdate >= 20180912;
    10. SELECT testdate FROM t1 WHERE testdate >= '20180912';

    Mysql允許存儲(chǔ)"0000-00-00"作為DATE類型的“0”值,也稱之為虛擬日期。在某些場(chǎng)景下比儲(chǔ)存NULL值更便捷。如果將一個(gè)不合法的日期值保存到DATE類型字段中,mysql默認(rèn)存儲(chǔ)為"0000-00-00"。 如果不允許存儲(chǔ)"0"值,請(qǐng)啟用NO_ZERO_DATE參數(shù)。

      本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多

      主站蜘蛛池模板: 又黄又硬又湿又刺激视频免费| 欧美日韩一区二区三区视频播放| 亚洲国产欧美一区二区好看电影| 欧美黑人大战白嫩在线| 亚洲熟妇AV一区二区三区宅男| 亚洲精品免费一二三区| 又大又粗又硬放不进去了| 欧美国产日韩A在线观看| 日本亚洲中文字幕不卡| 国产偷国产偷亚洲高清人| 久久这里只精品国产免费9| 亚洲国产精品无码AAA片| 丁香五月亚洲综合在线国内自拍| 国产成人无码区免费内射一片色欲| 少妇高潮水多太爽了动态图| 成熟丰满熟妇高潮XXXXX| 最新国产AV最新国产在钱| 无码国产精品一区二区高潮| 天天躁日日躁狠狠躁2018| 亚洲高清国产拍精品青青草原| 国产免费午夜福利757| 精品超清无码视频在线观看| 好吊妞国产欧美日韩免费观看| 91中文字幕一区在线| 欧美老熟妇XB水多毛多| 男女啪啪18禁无遮挡激烈| 成人午夜激情在线观看| 九九久久精品国产| 无码成人午夜在线观看| 丰满少妇高潮无套内谢| 久久丫精品国产亚洲AV不卡| 国产成年码AV片在线观看| 国产精品中文第一字幕| 国偷自产AV一区二区三区| 精品国产美女福到在线不卡| 少妇上班人妻精品偷人| 欧美XXXX色视频在线观看| CHINESETUBE国产在线观看| 暖暖日本手机免费观看中文 | 国产99视频精品免视看9| 香港日本三级亚洲三级|