สอบถามการ convert รูปแบบวันที่ใน SQL พอดีในฐานข้อมูลผมเก็บ เป็น 13-01-2010 แล้วทีนี้ผมจะแปลงใน SQL เลยให้เป็น 2010-01-13
หืมมม ข้อมูลที่ว่านี่ data type เป็น varchar หรือ datetime ละคะ
Date :
2010-07-10 13:10:44
By :
blurEyes
Code (PHP)
$date=date(yy-mm-dd);
echo($date);
ลองดูครับ อิอิอิอิอิอิ
Date :
2010-07-10 13:14:41
By :
SOUL
ผมเก็บเป็น text ครับ
Date :
2010-07-10 13:17:02
By :
ความรู้เท่าหางอึ่ง
อ๋อ ใช้ BETWEEN ได้เลยค่ะแต่แนะนำให้ใส่ เวลาลงไปด้วย เป็น 20100711-134011
เวลาค้นหาจากวันที่จะประมาณนี้
SELECT *
FROM `table_name`
WHERE SUBSTRING(`text_date_field` ,1 ,8) BETWEEN '20100101' AND '20101231'
Date :
2010-07-10 13:36:53
By :
blurEyes
ได้เลยเหรอครับ ผมเก็บ วัน เดือน ปี 01-01-2010 อย่างเงี้ยะอ่ะครับ
Date :
2010-07-10 13:47:04
By :
ความรู้เท่าหางอึ่ง
และค่าระหว่างวันที่ ถึง วันที่ ที่จะนำมาค้นหา
ผมก็มีรูปแบบ เหมือนกัน
Date :
2010-07-10 13:48:21
By :
ความรู้เท่าหางอึ่ง
อ๋อ ไปเก็บแบบ human readble
งั้นก้อต้องเหนื่อยมาตัดต่อ string เอาละค่ะ
แนะนำว่าให้เก็บแบบ machine ดีกว่านะคะ จะได้ sort ตามวันที่ได้
ไม่งั้นคุณจะพบว่าผลลัพธ์การ sort เป็นแบบนี้
01-02-2010
01-03-2010
02-02-2010
ซึ่งควรเป็น
01-02-2010
02-02-2010
01-03-2010
เพราะคุณจะใช้ FORMAT HUMAN READABLE นี่เฉพาะตอน DISPLAY ไม่ก้อรายงาน
จะมีผลกระทบต่อ performance ของข้อมูลเยอะค่ะ
แต่ถ้าไม่อยากเปลี่ยนก้อใช้อย่างนี้
SELECT *
FROM `table_name`
WHERE CONCAT(SUBSTRING(`text_date_field` ,7 ,4) ,'-' ,SUBSTRING(`text_date_field` ,4 ,2) ,'-' ,SUBSTRING(`text_date_field` ,1 ,2)) BETWEEN '2010-01-01' AND '2010-12-31'
Date :
2010-07-10 13:59:26
By :
blurEyes
ขอบคุณครับ คุณ Stupid gurl
Date :
2010-07-10 14:11:29
By :
ความรู้เท่าหางอึ่ง
Load balance : Server 04