如何将excel表导入数据库时转换date
我有一个格式01年3月1日的Excel表格。 当我导入该CSV文件到我的数据库中,它存储为0000-00-00。 如何在导入时转换dateformat 或者有没有其他办法? PLZ的帮助
这是即时通讯使用导入到数据库的代码
$databasetable = "sample"; $fieldseparator = ","; $lineseparator = "\n"; $csvfile = "../uploads/" . basename( $_FILES['file']['name']); $addauto = 0; $save = 1; $outputfile = "../temp/output.sql"; if(!file_exists($csvfile)) { #echo $csvfile; echo "File not found. Make sure you specified the correct path.\n"; return 0; exit; } $file = fopen($csvfile,"r"); if(!$file) { #echo "Error opening data file.\n"; return 0; exit; } $size = filesize($csvfile); if(!$size) { echo "File is empty.\n"; return 0; exit; } $csvcontent = fread($file,$size); fclose($file); $lines = 0; $queries = ""; $linearray = array(); foreach(split($lineseparator,$csvcontent) as $line) { $lines++; $line = trim($line," \t"); $line = str_replace("\r","",$line); $line = str_replace("'","\'",$line); $linearray = explode($fieldseparator,$line); $linemysql = implode("','",$linearray); if($addauto) $query = "insert into $databasetable values('','$linemysql');"; else $query = "insert into $databasetable values('$linemysql');"; $queries .= $query . "\n"; @mysql_query($query);
为什么不使用'LOAD DATA INFILE'与MySQL的date格式?
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
$d = "01-Mar-10"; $in_db = date('Ym-d', strtotime($d)); echo $in_db;
输出:
2010-03-01
使用date()
转换获取存储在数据库中的有效dateforms。 使用strtotime()
将exceldate格式转换为时间戳。
将数据爆炸到$ linearray后使用
$linearray[ID]=date('Ym-d', strtotime($linearray[ID]));
将其价值更改为适当的格式。 将ID与元素的数组索引replace为date字段。