2014-02-26 114 views
1

我想知道如何將dd.mm.yyyy這樣的字符串轉換爲日期格式,以便日期之間進行比較。在mysql中將字符串更改爲日期格式

我首先得到字符串的日期部分,但我不能使用STR_TO_DATE函數。我想我必須將此日期字符串轉換爲新的日期字符串,如dd/mm/yyyy,然後我可以使用STR_TO_DATE。你有什麼建議嗎?

SUBSTR(OLD_VALUE,1,10) 

編輯

確定這是我做的,到目前爲止,我得到錯誤

WHERE (STR_TO_DATE(SUBSTR(OLD_VALUE_TEXT),1,10),'%D.%M.%Y') < 
     (STR_TO_DATE(SUBSTR(NEW_VALUE_TEXT),1,10),'%D.%M.%Y')) 

新舊和值的文本是40長度的字符,並以這種格式01.02 .2014

樣本數據

我正在分享soma數據樣本。我需要查找new_value大於舊值的條目。謝謝

Name Char(30)  Old_Value_Text Char(40)   New_Value_Text Char(40) 
John    12.02.2012      01.02.2014 
Max    14.01.2014      22.02.2014 
Carter    05.05.2013      19.01.2014 
James    03.12.1998      07.02.2013 
Hank    26.04.2009      13.10.2012 
+0

作爲一個好奇心,爲什麼你不能使用'str_to_date'?這將是正是你需要的...... – raviolicode

+0

STR_TO_DATE很好只是用作參數的格式,你有'%d。%m。%Y' – Mihai

+0

好吧我試過但我需要在'WHERE'子句內調用這個函數 –

回答

0

我敢肯定,這遠非最好的,但你總是可以試試這個:

concat_ws('/',substring(OLD_VALUE,1,2), substring(OLD_VALUE,4,2), substring(OLD_VALUE from 7));

,您可以嘗試在控制檯上:

SELECT concat_ws('/',substring('dd.mm.yyyy',1,2), substring('dd.mm.yyyy',4,2), substring('dd.mm.yyyy' from 7));

將返回這個:

dd/mm/yyyy

相關問題