mysql使用between and在處理時間範圍時的區間邊界問題

前提:

基於emp表,我想獲取入職日期在1980-12-17到1981-02-22的人員信息。
在這裏插入圖片描述
使用between…and…時發現無法獲取到日期爲1981-02-22的人員記錄。
在這裏插入圖片描述
between是左右閉區間,爲什麼無法獲取右邊區間的數據呢?


原因:


1.首先emp表格中hiredate的數據類型是datetime類型,當你使用between查找日期範圍的時候,會將
左區間‘1980-12-17’轉化爲‘1980-12-17 00:00:00’,
右區間‘1981-02-22’轉化爲‘1981-02-22 00:00:00’。
而emp表中實際是‘1981-02-22 01:00:00’,寫的sql語句截止到1981-02-22的0點以前,所以無法找到時間爲1981-02-22的1點的數據。

若我調整查找範圍,查找1980-12-17到1981-04-02範圍內入職員工信息,就能把右區間的數據查找出來。
原因是右區間‘1981-04-02’轉化爲‘1981-04-02 00:00:00’,emp表中實際存儲的也是‘1981-04-02 00:00:00’。
在這裏插入圖片描述

2.若emp表格中hiredate的數據類型是date類型,則使用between查找日期範圍的時候,就會把左右區間邊界都找出來。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章