การจัดการกับวันที่ที่มีรูปแบบต่างกัน

การจัดการกับวันที่ที่มีรูปแบบต่างกัน เราควรทำอย่างไรดีครับ



ตัวอย่าง ต้องการ Format Date ดังนี้ครับ Y-m-d , (2010-11-18)



แต่ข้อมูลที่จะนำเข้ามีลักษณะหลากหลายแบบมาก เช่น



2010-Nov-18

18/Nov/2010

18/11/2010

2010/11/18



ขอบคุณครับ
18 พ.ย. 2553 4 1,170

คงต้องเขียนคำสั่งเพื่อจัดการเองแล้วมั้งครับ ซึ่งน่าจะวุ่นวายเอาการ



2010-Nov-18

18/Nov/2010



2 รายการนี้อาจไม่ยากเท่าไร โดยใช้แนวคิดว่า 4 หลักคือ ปี 2 หลักคือ วันที่ และ ภาษาอ. คือ เดือน



18/11/2010

2010/11/18



2 อันนี้แหละ หิน สุดๆ เราไม่มีทางรู้เลยว่า อันไหนคือ วันที่ อันไหน คือเดือน (รับประกันได้ว่าในโลกนี้ไม่มีใครเขียนโปรแกรมแยกได้)
#1

ขอบคุณมากครับอาจารย์ ลูกค้าดันส่งข้อมูลมาไม่เหมือนกันซักที่ 
#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"));

#3

ปัญหายังตกอยู่ที่สองแบบตามที่คุณกรกดบอกนั่นแหละครับ คือ



ถ้าเป็น 20100101 จะใช้ฟังก์ชั่นไหน ระหว่าง (%Y%m%d) หรือ (%Y%d%m) และถ้าเป็น

01012010 จะใช้ฟังก์ชั่นไหน ระหว่าง (%d%m%Y) หรือ (%m%d%Y)



เพราะมีบางครั้งเหมือนกันที่ เดือนกับวันมักจะสลับที่กันอยู่ แต่พบน้อยหน่อยในไทย แต่บางประเทศใช้สลับกันกับบ้านเราจริงๆ

#4
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^