MySQL字符串類型比較時間
在 MySQL 數據庫中,時間的格式有很多種,如:YYYY-MM-DD HH:mm:ss,這種格式下的時間,我們可以直接用字符串類型進行比較。但是,如果字符串類型的時間格式不一致,或者字符串類型的時間格式和數據表中的時間類型不一致,那么就要注意比較時間的正確性。
比較規則如下:
1、對于相同類型的時間,字符串類型和時間類型比較,字符串類型會被自動轉換成時間類型,再進行比較。
2、對于不同類型的時間,字符串類型和時間類型比較,時間類型默認優先級高于字符串類型。
舉例:
如果在數據表中定義的時間類型是“datetime”,格式為“YYYY-MM-DD HH:mm:ss”。
那么,無論我們用什么樣的字符串類型時間進行比較,MySQL都會將其轉換成時間類型,再進行比較,如下:
1、比較“2019-01-01 00:00:00”和“2019-01-01 12:00:00”。
由于兩個字符串都是“datetime”類型的時間,并且格式一致,MySQL會將其轉換成時間類型后再進行比較。
2、比較“2019-01-01 00:00:00”和“2019-01-01”。
由于第一個字符串是“datetime”類型的時間,而第二個字符串是“date”類型的時間,數據類型不一致,MySQL會默認使用時間類型進行比較。
3、比較“2019-01-01 00:00:00”和“20190101”。
由于第一個字符串是“datetime”類型的時間,而第二個字符串是“char”類型的,數據類型不一致,MySQL會默認使用時間類型進行比較。