เนื่องด้วยผมมีปัญหากับฐานข้อมูลของตัวเอง ครับ
ดันบันทึกปี ลงไปเป็นรูปแบบปี พ.ศ. แต่ตัว database ของผมดัน เก็บรูปแบบปี ค.ศ.
ทั้งนี้มันจะมีปัญหากับเดือนกุมภาพันธ์ครับ ทำให้ปีที่มี 29 วันไม่ตรงกัน
จึงทำให้บันทึกวันที่ 29 ไม่ได้เลยมีความจำเป็นต้องแก้โปรแกรมใหม่
แต่ส่วนของ database ที่บันทึกไปแล้วนี้ซิจะมาแก้ที่ละ record ก็กระไรอยู่ครับเลยหาวิธีจนได้
ก่อนที่จะดำเนินการ update sql ลอง query ขึ้นมาดูก่อนก็ได้ครับว่ามันตรงช่องของเราหรือเปล่า
ด้วยคำสั่ง
date_sub(ชื่อฟิลด์วันเดือนปี, INTERVAL 543 YEAR)
เป็นคำสั่งที่จะทำการลดปีใน field ของเราลงไป 543 ปีครับ จาก พ.ศ. ลงไป ค.ศ. ตามที่เราต้องการ
ตัวอย่างคำสั่ง
select date_sub(ชื่อฟิลด์วันเดือนปี, INTERVAL 543 YEAR) from ชื่อตาราง
----------------------------------------------------------------------------------------------------
ส่วนใครมีปัญหาอยากเพิ่มปี(เปลี่ยนจาก ค.ศ. เป็น พ.ศ)ก็ใช้คำสั่ง date_add แทนครับ
date_add(ชื่อฟิลด์วันเดือนปี, INTERVAL 543 YEAR)
ตัวอย่างคำสั่ง
select date_add(ชื่อฟิลด์วันเดือนปี, INTERVAL 543 YEAR) from ชื่อตาราง
หลังจาก query แล้วถูกต้อง ก็ update เลยครับ
update ชื่อตาราง set ชื่อฟิลด์วันเดือนปี=date_sub(ชื่อฟิลด์วันเดือนปี,INTERVAL 543 YEAR) where 1
where 1 จะเป็นการให้ คำสั่งทำงานทุก record ในตารางของเราครับ
******ส่วนถ้าใคร Run Update แล้วมี error แสดงว่า ฟิลด์วันที่ของเรา บาง record มีวันที่ที่เป็น 0000-00-00 อยู่ครับ เข้าไปเปลี่ยนให้เป็นวันที่อะไรก็ได้หรือว่าลบทิ้งไปเลยถ้าไม่ใช้ แล้วดำเนินการ update ใหม่ครับ******
-------------------------------------------------------------------------------------
หวังว่าคำสั่งชุดนี้จะช่วยให้การแก้ไขข้อมูลเพื่อนๆ ไวขึ้นนะครับ ^___^
-------------------------------------------------------------------------------------
อ้างอิง http://www.w3schools.com/sql/sql_dates.asp