2016-11-29 118 views
0

我目前正在使用具有月份列和年份列的數據庫。兩者都是文本類型。月份存儲爲'1月',年份的存儲方式與您期望的'2016'相同。將Mysql文本轉換爲日期

任何有關將這些連接起來並將它們轉換爲日期類型的建議?

+0

你期望recomendations? –

+0

是月份還是年份分列或單列? – Balan

+0

顯示正確的數據樣本和預期結果 – scaisEdge

回答

1

您可以使用這樣的查詢。你只需要改變串到你的字段名:

樣品

select STR_TO_DATE(concat('2016',' ','April','1'), '%Y %M %D'); 

結果

2016-04-01 
0

這個工作對我來說:

select convert(date,(concat('January',' ','2016'))) 
0
$months = [ 
    'january' => 1, 
    'february' => 2, 
    'march'  => 3, 
    'april'  => 4, 
    'may'  => 5, 
    'june'  => 6, 
    'july'  => 7, 
    'august' => 8, 
    'september' => 9, 
    'october' =>10, 
    'november' =>11, 
    'december' =>12 
    ]; 

    $year  = 2016; 
    $month_text = 'january'; 
    $day  = 1; 

    if($months[strtolower($month_text)]<10){ 
     $month = '0'.$months[strtolower($month_text)]; 
    }else{ 
     $month = $months[strtolower($month_text)]; 
    } 
    if($day<10){ 
     $day = '0'.$day; 
    }else{ 
     $day = $day; 
    } 


    echo $year.'-'.$month.'-'.$day; 

在數據庫創建一個新的費爾德型日期,並將其插入到數據庫。也許包裝在一個函數,並把它放在一個while循環..?