ขอถามการแปลงค่าปี จาก พ.ศ. -> ค.ศ. ครับ

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

User avatar
Ballz
PHP Sr. Member
PHP Sr. Member
Posts: 78
Joined: 01/01/1970 7:00 am

ขอถามการแปลงค่าปี จาก พ.ศ. -> ค.ศ. ครับ

Postby Ballz » 24/10/2007 4:48 am

ข้อมูลวันเกิดใน table ที่ผมทำไว้ตอนแรกเก็บเป็นปี พ.ศ. หากผมต้องการ Update ทั้งตารางให้เป็นปี ค.ศ. (โดยไม่กระเทือนข้อมูลวัน เดือน หรือข้อมูลอื่นๆ) ต้องเขียน SQL ยังไงดีครับ :?:

ขอบคุณมากครับ :-D

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21755
Joined: 22/09/2008 6:18 pm
Contact:

Postby mindphp » 24/10/2007 5:04 am

field มี datatype เป็น อะไรครับ แล้ว แต่ field เดียวหรือ หลาย field
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

User avatar
Ballz
PHP Sr. Member
PHP Sr. Member
Posts: 78
Joined: 01/01/1970 7:00 am

Postby Ballz » 24/10/2007 8:00 am

ฟิลด์เดี่ยวครับ

ฟิลด์ชื่อ Birthdate มีType date มี Default เป็น 0000-00-00 ครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21755
Joined: 22/09/2008 6:18 pm
Contact:

Postby mindphp » 24/10/2007 8:44 am

ใช้ function
DATE_SUB(Birthdate, INTERVAL 543 YEAR)
ลอง select DATE_SUB(Birthdate, INTERVAL 543 YEAR) FROM table ดูก่อน นะครับ ว่าได้ ผลตามที่ต้องการ หรือไม่ ก่อน สั่ง update มัน
Last edited by mindphp on 29/02/2008 9:05 pm, edited 1 time in total.
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

User avatar
Ballz
PHP Sr. Member
PHP Sr. Member
Posts: 78
Joined: 01/01/1970 7:00 am

Postby Ballz » 24/10/2007 4:48 pm

ลอง Select แล้ว ใช้ได้ครับ

ขอบคุณครับ :-D

User avatar
twin
PHP Jr. Member
PHP Jr. Member
Posts: 28
Joined: 01/01/1970 7:00 am

Postby twin » 29/02/2008 8:38 pm

พอดีอ่านมาเจอก็เลยอยากจะถามความรู้ว่า ปกติใน MySQL จะเก็บเป็นค่าวันที่ตาม ค.ศ. ใช่ไหมครับ (datatype เป็น date)
ผมเข้าใจถูกหรือเปล่าที่ว่า ตามกรณีคุณBallz นั้นเขาคีย์ตั้งใจเป็นปี พ.ศ. เช่น 2550-12-02 เมื่อเข้าไปในฐานข้อมูลแล้ว ใน MySQL ก็เก็บและจำเป็นปี ค.ศ. 2550-12-02
จึงใช้ function DATE_SUB(Birthdate, INTERVAL 543 YEAR) เพื่อลดค่าให้มันเป็น ปี ค.ศ.
จริง ๆ ใช่ไหมครับ
ผมเข้าใจถูกหรือเปล่า หากเข้าใจถูกแล้ว ถ้าหากเจอเดือนกุมภาพันธ์2551 ซึ่งมี 29 วัน จะมีผลกระทบอะไรหรือไม่ครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 21755
Joined: 22/09/2008 6:18 pm
Contact:

Postby mindphp » 29/02/2008 9:05 pm

function นั้นใช้ ในการ ลด วัน-เดือน-ปี
ถ้าเราใส่ตาม ตัวอย่าง มันก็จะ ลดปีลงมาให้ ตามต้องการ
สำหรับ over lap years คือวันที่ 29 ของบางปีนั้น
ถ้าเป็น ปี 2551 ก็มี 29 วันอยู่แล้ว จะไม่มีผลใดๆ
แต่ถ้าเป็น ปี 2550 แล้ว ข้อมูล เดิมเค้ากรอกไว้เป็น วันที่ 29 (ซึ่งจริงๆมันก็ผิดอยู่แล้วเพราะ2550-02-29 มันไม่มี) แต่ถ้าใช้ function นั้นช่วยมันก็ จะลดปัญหา(ข้อผิดพลาดของ over lap years ) ให้ด้วย จะได้เป็น 2008-02-28
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042


Return to “SQL - Database”

Who is online

Users browsing this forum: Google Adsense [Bot] and 7 guests