1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        在 MySQL 中處理日期和時間(五)

        共 1438字,需瀏覽 3分鐘

         ·

        2022-06-10 03:00

        第五章節(jié):如何在 SELECT 查詢中使用時態(tài)數(shù)據(jù)


        在 MySQL 中的日期和時間系列的最后一部分中,我們將通過編寫 SELECT 查詢來將迄今為止學到的所有知識付諸實踐,以獲得對數(shù)據(jù)的與日期相關(guān)的細節(jié)。

        • 從 Datetime 列中選擇日期


        數(shù)據(jù)庫從業(yè)人員在嘗試查詢?nèi)掌跁r遇到的首要挑戰(zhàn)之一是大量時間數(shù)據(jù)存儲為 DateTime 和 Timestamp 數(shù)據(jù)類型。例如,Sakila 示例數(shù)據(jù)庫將 customer 表的 create_date 列存儲為 Datetime:


        因此,如果我們嘗試選擇在特定日期創(chuàng)建的客戶記錄,就不能只提供日期值:


        一個簡單的解決方法是使用 DATE() 函數(shù)將 Datetime 值轉(zhuǎn)換為日期:


        現(xiàn)在,任何匹配日期的記錄都將被返回。

        • 獲取兩個日期之間的差異


        執(zhí)行確定某件事發(fā)生多久之前的查詢是非常常見的。在 MySQL 中,這樣做的方法是使用 DATEDIFF() 函數(shù)。它接受兩個日期值并返回它們之間的天數(shù)。以下是一個簡單示例:


        請注意,在上面的示例中,DATEDIFF() 讓我們知道第一個日期比第二個日期晚 10 天。第一個參數(shù)也可以使用更早的日期,它將返回一個負值:


        • 計算天數(shù)以外的時間段


        對于天數(shù)以外的時間段,我們需要做一些轉(zhuǎn)換。例如,我們可以除以 7 來獲得兩個日期之間的周數(shù)。使用舍入可以在結(jié)果中顯示整數(shù)周:

        ROUND(DATEDIFF(end_date, start_date)/7, 0) AS weeksout


        對于其他時間段,TIMESTAMPDIFF() 函數(shù)可能會有所幫助。它接受兩個 TIMESTAMP 或 DATETIME 值(DATE 值將在 MySQL 中自動轉(zhuǎn)換)以及我們想要差異的時間單位。例如,我們可以在第一個參數(shù)中指定 MONTH 作為單位:


        SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-04')

        -- Outputs: 0

        SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-05')

        -- Outputs: 1

        SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-06-15')

        -- Outputs: 1

        SELECT TIMESTAMPDIFF(MONTH, '2012-05-05', '2012-12-16')

        -- Outputs: 7

        • 一個更復(fù)雜的例子


        一旦掌握了 DATEDIFF() 函數(shù)的竅門,就可以以更進階的方式使用它。舉個例子,這里有一個查詢,它使用 DATEDIFF() 函數(shù)來計算客戶在歸還電影之前租借的平均天數(shù):


        為此,將 DATEDIFF() 函數(shù)的結(jié)果傳遞給 AVG() 函數(shù),然后四舍五入到小數(shù)點后 1 位。

        • 系列總結(jié)


        我們在這個日期和時間系列中涵蓋了很多內(nèi)容,包括:


        雖然在 MySQL 中處理時態(tài)數(shù)據(jù)肯定還有很多工作要做,但希望本系列能讓你在學習 MySQL 的道路上有個很好的開端。

        推薦閱讀


        (點擊標題可跳轉(zhuǎn)閱讀)

        在 MySQL 中處理日期和時間(四)

        在 MySQL 中處理日期和時間(三)

        在 MySQL 中處理日期和時間(二)

        - End -
        動動手指轉(zhuǎn)發(fā)、在看
        是對我最大的鼓勵
        瀏覽 50
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            操她视频在线观看 | 爱液视频网站 | 女生扒开尿口让男生插 | 在教室伦流澡到高潮h女视频 | 免费小黄片视频 | 大香蕉青青| 色男天堂| 中文字幕av一区二区 | 把美女操出水 | 国产视频韩国三级 |