2016-11-29 151 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循环..?