在mysql使用過程中,日期一般都是以datetime、timestamp等格式進行存儲的,但有時會因為特殊的需求或歷史原因,日期的存儲格式是varchar,那么我們該如何處理這個varchar格式的日期數據呢?
使用函數:str_to_date(str, format)
str_to_date(str, format)函數是date_format()函數的反函數。它需要一個字符串str和一個格式字符串格式。str_to_date()返回一個datetime值,如果格式字符串包含日期和時間部分,或如果字符串只包含日期或時間的部分返回日期或時間值。
下面舉個案例進行說明。
比如我現在有一張會員表,表的結構如下所示:
我在表中造了如下幾條數據:
現在,如果我需要從中挑選出2018年8月份注冊的所有會員,并按注冊時間進行排序,那么要怎么做呢?這里給出一個參考:
1
2
3
4
|
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類型比較排序內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/qq9808/article/details/82020382