สอบถาม การ Format ค่าวันที่ ในฟิวด์วันที่ ที่ผมออกแบบเป็น varchar แต่ภายหลังข้อมูลมีปริมาณมาก ผมต้องการจัด Format ให้เป็น date
ใช้ phpMyadmin เข้าไป backup Database ออกมาก่อนครับจากนั้น เขียน PHP คิวรี่เอาวันที่ กับ primary key
ของตารางออกมาจากนั้น เขียน คิวรี่อัพเดท วันที่ where ด้วยเงื่อนไข primary key
ในลูป while โดยเขียนเป็นคำสั่ง
Code (PHP)
$sql="select pk_id, field_date from tb_name";
$qr=mysql_query($sql);
while($rs=mysql_fetch_array($qr)){
$d = str_replace('/', '-', '15/06/2013'); // เอาตัวแปลวันที่ใส่เข้าไป $d = str_replace('/', '-', $rs['date']);
$newdate=date('Y-m-d', strtotime($d));
echo "update tb_name set feid_date = '$newdate' where pk_id='$rs[pk_id]'"."<br>";
}
จากนั้น copy เก็บไว้ใน nodepad หรืออะไรก็ได้ครับ แล้วไปเปลี่ยน feid_date จาก varchar เป็น date จากนั้น เข้า phpMyadmin ไปตรงเมนู sql แล้วเอาคำสั่งที่ copy ไว้ที่ nodepad มาแปะ กด OK เป็นอันเรียบร้อยครับ
Date :
2013-06-19 08:39:43
By :
Manussawin
จะต้องใช้การสร้างฟิวด์ขึ้นมาใหมาอีกตัวครับ จากนั้นใช้การ UPDATE ให้ถูกต้องไปยังฟิวด์ใหม่ เมื่อเสร็จแล้ว ก็ลบฟิวด์เก่าทิ้งเปลี่ยนฟิวด์ใหม่ให้เป็นชื่อฟิวด์เดิม ครับ
Code
UPDATE table_name SET NEW_COLUMN = STR_TO_DATE(OLD_COLUMN, '%d/%m/%Y')
ทำที่ Query ครั้งเดียวจบครับ
Date :
2013-06-19 08:42:43
By :
mr.win
ขอบคุณครับ ผมกำลัง ลอง ทั้งสองวิธีครับ
ประวัติการแก้ไข 2013-06-19 09:41:19
Date :
2013-06-19 09:40:51
By :
comtest
Load balance : Server 04