01 March 2016

คำสั่ง sql เปลี่ยนปี พ.ศ. ให้เป็น ปี ค.ศ. ทั้ง database

เนื่องด้วยผมมีปัญหากับฐานข้อมูลของตัวเอง ครับ
ดันบันทึกปี ลงไปเป็นรูปแบบปี พ.ศ. แต่ตัว 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