การจัดการกับวันที่ที่มีรูปแบบต่างกัน HomeForumการจัดการกับวันที่ที่มีรูปแบบต่างกัน Wanchana yoojuy การจัดการกับวันที่ที่มีรูปแบบต่างกัน เราควรทำอย่างไรดีครับ ตัวอย่าง ต้องการ Format Date ดังนี้ครับ Y-m-d , (2010-11-18) แต่ข้อมูลที่จะนำเข้ามีลักษณะหลากหลายแบบมาก เช่น 2010-Nov-18 18/Nov/2010 18/11/2010 2010/11/18 ขอบคุณครับ กรกฎ วิริยะ คงต้องเขียนคำสั่งเพื่อจัดการเองแล้วมั้งครับ ซึ่งน่าจะวุ่นวายเอาการ 2010-Nov-18 18/Nov/2010 2 รายการนี้อาจไม่ยากเท่าไร โดยใช้แนวคิดว่า 4 หลักคือ ปี 2 หลักคือ วันที่ และ ภาษาอ. คือ เดือน 18/11/2010 2010/11/18 2 อันนี้แหละ หิน สุดๆ เราไม่มีทางรู้เลยว่า อันไหนคือ วันที่ อันไหน คือเดือน (รับประกันได้ว่าในโลกนี้ไม่มีใครเขียนโปรแกรมแยกได้) Wanchana yoojuy ขอบคุณมากครับอาจารย์ ลูกค้าดันส่งข้อมูลมาไม่เหมือนกันซักที่ Wanchana yoojuy ทำได้แล้วครับ ลองดูนะครับ เผื่อมีท่านใดจำเป็นต้องใช้งานนะครับ 20-Dec-10 select date_format(str_to_date('20-Dec-10 ', "%d-%b-%Y"), "%m/%d/%Y"); 26.08.2010 SELECT date_format(STR_TO_DATE('26.8.2010', '%d.%m.%Y'), "%m/%d/%Y"); 23082010 SELECT date_format(STR_TO_DATE('23082010', '%d%m%Y'), "%m/%d/%Y"); 20100916 SELECT date_format(STR_TO_DATE('20100916', '%Y%m%d'), "%m/%d/%Y"); 23/09/2010 SELECT date_format(STR_TO_DATE('23/09/2010', '%d/%m/%Y'), "%m/%d/%Y"); 2010-08-10 date("Y-m-d",strtotime("2010-08-10")); BlueEye วิโรจน์ คชินทร์ ปัญหายังตกอยู่ที่สองแบบตามที่คุณกรกดบอกนั่นแหละครับ คือ ถ้าเป็น 20100101 จะใช้ฟังก์ชั่นไหน ระหว่าง (%Y%m%d) หรือ (%Y%d%m) และถ้าเป็น 01012010 จะใช้ฟังก์ชั่นไหน ระหว่าง (%d%m%Y) หรือ (%m%d%Y) เพราะมีบางครั้งเหมือนกันที่ เดือนกับวันมักจะสลับที่กันอยู่ แต่พบน้อยหน่อยในไทย แต่บางประเทศใช้สลับกันกับบ้านเราจริงๆ ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
2010-Nov-18
18/Nov/2010
2 รายการนี้อาจไม่ยากเท่าไร โดยใช้แนวคิดว่า 4 หลักคือ ปี 2 หลักคือ วันที่ และ ภาษาอ. คือ เดือน
18/11/2010
2010/11/18
2 อันนี้แหละ หิน สุดๆ เราไม่มีทางรู้เลยว่า อันไหนคือ วันที่ อันไหน คือเดือน (รับประกันได้ว่าในโลกนี้ไม่มีใครเขียนโปรแกรมแยกได้)
ทำได้แล้วครับ ลองดูนะครับ เผื่อมีท่านใดจำเป็นต้องใช้งานนะครับ
20-Dec-10
select date_format(str_to_date('20-Dec-10 ', "%d-%b-%Y"), "%m/%d/%Y");
26.08.2010
SELECT date_format(STR_TO_DATE('26.8.2010', '%d.%m.%Y'), "%m/%d/%Y");
23082010
SELECT date_format(STR_TO_DATE('23082010', '%d%m%Y'), "%m/%d/%Y");
20100916
SELECT date_format(STR_TO_DATE('20100916', '%Y%m%d'), "%m/%d/%Y");
23/09/2010
SELECT date_format(STR_TO_DATE('23/09/2010', '%d/%m/%Y'), "%m/%d/%Y");
2010-08-10
date("Y-m-d",strtotime("2010-08-10"));
ถ้าเป็น 20100101 จะใช้ฟังก์ชั่นไหน ระหว่าง (%Y%m%d) หรือ (%Y%d%m) และถ้าเป็น
01012010 จะใช้ฟังก์ชั่นไหน ระหว่าง (%d%m%Y) หรือ (%m%d%Y)
เพราะมีบางครั้งเหมือนกันที่ เดือนกับวันมักจะสลับที่กันอยู่ แต่พบน้อยหน่อยในไทย แต่บางประเทศใช้สลับกันกับบ้านเราจริงๆ