2016-03-07 109 views
1

我得從我的DB這個選擇:的MySQL如何使用STR_TO_DATE功能

SELECT 
    `Atleta`, 
    `Medaglia`, 
    `Sport`, 
    `Evento`, 
    `Olimpiade`, 
    STR_TO_DATE(`DataGara`, '%d/%m/%y') as Data, 
    `Categoria` 
FROM `ItalianAthletes` 
WHERE Medaglia <> '' 
order by Data asc 

以前我做了場 'DataGara' 爲VARCHAR使用此格式(255):DD/MM/YYYY。

我想在輸出相同的格式,但我得到YYYY-MM-DD格式,具有錯誤的一年,怎麼一回事,因爲今年值爲1900,但我得到2019

我想代替與db相同的格式,即dd/mm/yyyy和正確的年份值。

+0

請提供您的表格定義和樣本值。 –

+0

格式代碼區分大小寫。 –

+0

無論如何,我建議你在開始獲取像'2016-02-31','3/4/16','今天早些時候'或'不知道'之類的存儲數據之前修正列類型。 –

回答

1

這裏是你如何使用STR_TO_DATE(字符串,format_mask)。退房http://www.techonthenet.com/mysql/functions/str_to_date.php

mysql> SELECT STR_TO_DATE('February 01 2014', '%M %d %Y'); 
Result: '2014-02-01' 

mysql> SELECT STR_TO_DATE('March,8,2014', '%M,%e,%Y'); 
Result: '2014-03-08' 

mysql> SELECT STR_TO_DATE('Friday, February 28, 2014', '%W, %M %e, %Y'); 
Result: '2014-02-28' 

mysql> SELECT STR_TO_DATE('2014,2,28 09', '%Y,%m,%d %h'); 
Result: '2014-02-28 09:00:00' 

mysql> SELECT STR_TO_DATE('2014,2,28 09,30,05', '%Y,%m,%d %h,%i,%s'); 
Result: '2014-02-28 09:30:05' 

mysql> SELECT STR_TO_DATE('10,15,30', '%h,%i,%s'); 
Result: '10:15:30'