在設計數據庫的時候varchar類型是一個非常常見的類型,很多字段都可以使用這個類型,所以有時候在設計數據庫的時候就很容易習慣性設計該類型,比如說時間類型,我們既可以DateTime類型,又可以使用varchar類型,使用插入的時候都沒有問題,但是通過sql語句進行查詢的時候可能出現意想不到的結果。
因為使用varchar時候,數據庫是按照整個時間的代表的數字來進行排序的,比如按照降序排列,正常情況下10點以后的事件會排在9點鍾之前的,但實際情況恰恰相反,因為如果將時間設置成varchar類型,數據庫會首先比較第一個字符的順序,因為9比1大,所以9點會排在最上面,這種方式會在查詢數據庫時出現各種意外的結果,看一下下面的截圖就知道了。
所以在進行數據庫設計的時候一定要注意,將涉及到時間的字段都設置成DateTime類型,而不應該設計成VarChar類型,這能避免在查詢中涉及到各種意向不到的結果。