mysql中varchar類型的日期進行比較、排序等操作的實現

在mysql使用過程中,日期一般都是以datetime、timestamp等格式進行存儲的,但有時會因為特殊的需求或歷史原因,日期的存儲格式是varchar,那麼我們該如何處理這個varchar格式的日期數據呢?

使用函數:STR_TO_DATE(str, format)

STR_TO_DATE(str, format)函數是DATE_FORMAT()函數的反函數。它需要一個字符串str和一個格式字符串格式。STR_TO_DATE()返回一個DATETIME值,如果格式字符串包含日期和時間部分,或如果字符串隻包含日期或時間的部分返回日期或時間值。

下面舉個案例進行說明。

比如我現在有一張會員表,表的結構如下所示:

我在表中造瞭如下幾條數據:

現在,如果我需要從中挑選出2018年8月份註冊的所有會員,並按註冊時間進行排序,那麼要怎麼做呢?這裡給出一個參考:

SELECT id,nickname,createtime 
FROM member
WHERE str_to_date(createtime, '%Y-%m-%d') BETWEEN str_to_date('2018-08-01', '%Y-%m-%d') AND str_to_date('2018-08-31', '%Y-%m-%d')
ORDER BY str_to_date(createtime, '%Y-%m-%d')

執行結果如下:

總結:STR_TO_DATE(str, format)函數可以將數據庫中varchar類型的日期數據轉換成DATETIME類型的日期數據,轉換過程註意format參數必須要應對str的格式,之後我們就可以進行比較、排序等操作啦!

到此這篇關於mysql中varchar類型的日期進行比較、排序等操作的實現的文章就介紹到這瞭,更多相關mysql varchar類型比較排序內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: