ยินดีต้อนรับ กรุณา สมัครสมาชิก หรือเข้าสู่ระบบ

Home » webboard » PHP
เข้าชม : 1516

แปลงฐานข้อมูล mysql จาก dd/mm/yyyy เป็น yyyy-mm-dd

โพสต์เมื่อ: วันศุกร์ 23 กันยายน 2554  21:21 น.

วันที่ใน MySQL เป็น mm/dd/yyyy ทำไงให้เป็น yyyy-mm-dd

ทำได้หลายแบบ แต่เอาแค่ 2 แบบก็พอ
แบบข้อความ เราจะติ๊ต่างว่าวันที่ที่มีเป็นข้อความ (ซึ่งมันก็ดูเป็นข้อความอ่ะนะ) วิธีการคือจะตัดเอาส่วนต่าง ๆ ของวันที่ออกมา โดยเราจะใช้สตริงฟังก์ชัน (String Function) ซึ่งก็คือ LEFT(), MID() และ RIGHT() มาตัดชิ้นส่วนของวันที่ ตัวอย่างเราจะใช้วันที่เป็น '05/11/2009'
  1. ใช้ LEFT(string, length) ตัดเอาเดือนทางซ้ายออกมา ได้เป็น LEFT('05/11/2009', 2) ก็จะได้ 05 มา ข้อควรระวังคือถ้าเลขเดือนมันเป็นตัวเลขเดี่ยวก็ต้องลดจำนวนตัวอักษรที่จะตัดลง
  2. ใช้ MID(string, start_pos, length) ตัดวันที่ออกมา MID('05/11/2009', 4, 2) ได้ 11 อืม... ฉลาดจิง ๆ
  3. ต่อมาก็ตัดปีออกมาจากทางขวา RIGHT('05/11/2009', 4) ได้ 2009
  4. ตัดมาแล้วทำไงต่อ? ก็ต้องเอามารวมกันสิ เราจะใช้ CONCAT_WS(separator, string,..., string) มาเป็นตัวรวมข้อมูล จะได้ CONCAT_WS('-', RIGHT('05/11/2009', 4), LEFT('05/11/2009', 2), MID('05/11/2009', 4, 2)) แค่นี้ก็จะได้วันที่ในแบบที่เราต้องการแล้ว หึหึ ง่ายจิง จิง (เหรอวะเนี่ย -*-)
อีกวิธีคือ แบบ Date เนื่องจากข้อความวันที่นั้นมันอยู่ในรูปแบบวันที่อยู่แล้ว แต่ข้อมูลเป็น String เราจึงมีฟังก์ชัน STR_TO_DATE(date_str, format) ซึ่งสามารถจะแปลงข้อความให้เป็นตัวแปรแบบ Date ได้
ลองดู STR_TO_DATE('05/11/2009', '%m/%d/%Y') .... แค่เนี๊ยะ ลอง
SELECT STR_TO_DATE('05/11/2009', '%m/%d/%Y') ก็จะได้ 2009-05-11 เลย....

ที่มา http://sukorn.multiply.com/journal/item/81

แปลงวันที่


คุณต้องสมัครสมาชิก ถึงจะโพสกระทู้ได้

ปิดรับสมัครสมาชิกแล้ว


คำยอดฮิต :- 0