จะอิมพอร์ตไฟล์ CSV เข้า MySQL มีปัญหาเรื่อง Format วันที่ครับ ช่วยดูหน่อย
จาก code
Code (PHP)
<?
copy($_FILES["fileCSV"]["tmp_name"],$_FILES["fileCSV"]["name"]); // Copy/Upload CSV
include("..\dbconn.inc.php");
$objCSV = fopen("buytax.csv", "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO buy_tax ";
$strSQL .="VALUES ";
$strSQL .="(null,'".$objArr[9]."','".$objArr[5]."' ";
$strSQL .=",'".$objArr[10]."','".$objArr[11]."','".$objArr[1]."') ";
echo $strSQL;
$objQuery = mysql_query($strSQL) or die ('Error query: ' . mysql_error());;
}
fclose($objCSV);
echo "Upload & Import Done.";
?>
อิมพอร์ตแล้ว error ว่า
INSERT INTO buy_tax VALUES (null,'201203013558','12B5026509' ,'41949.35','2744.35','20/3/2012') Error query: Incorrect date value: '20/3/2012' for column 'BILLDATE' at row 1
เนื่องจากว่าค่าของ $objArr[1] ใน csv มีค่าเป็น 20/3/2012 ซึ่ง Format Date ของ MySqL ต้องเป็น 2012-03-20 ถึงจะ add record ได้
มีวิธี หรือฟังชั่นไหนที่แปลงค่าจาก 20/3/2012 เป็น 2012-03-20 ให้ได้บ้างไหมครับ พอดีข้อมูลใน CSV ที่ได้มาเป็นวันที่ format นี้ครับ
20/3/2012
22/3/2012
25/3/2012
5/3/2012
23/3/2012
23/3/2012
26/3/2012
5/3/2012
16/3/2012
3/3/2012
3/3/2012
16/3/2012
แต่ต้องการ 2012-03-20 formatTag : PHP, MySQL
ประวัติการแก้ไข 2012-04-09 17:11:55 2012-04-09 17:15:29
Date :
2012-04-09 17:10:35
By :
เด็กฝึกหัด
View :
1472
Reply :
2
ทำได้ละครับ
แปะโค้ดเผื่อใครอยากนำไปใช้นะครับ
Code (PHP)
$$strDate ='20/3/2012'
$sub=substr($strDate,0,10);
list($d,$m,$y)=explode('/',$sub);
$date= $y."-".$m."-".$d;
echo $date;
Date :
2012-04-09 19:17:52
By :
เด็กฝึกหัด
กำลังจะตอบครับ Format ที่ถูกต้องจะต้องเป็น YYYY-MM-DD ครับ
Date :
2012-04-09 20:32:51
By :
webmaster
Load balance : Server 05