ฉันมีstringคอลัมน์ซึ่งทำหน้าที่เป็นและฉันต้องการที่จะเลือกเป็นdatedate
เป็นไปได้ไหม?
รูปแบบข้อมูลตัวอย่างของฉันจะเป็น; month/day/year->12/31/2011
ฉันมีstringคอลัมน์ซึ่งทำหน้าที่เป็นและฉันต้องการที่จะเลือกเป็นdatedate
เป็นไปได้ไหม?
รูปแบบข้อมูลตัวอย่างของฉันจะเป็น; month/day/year->12/31/2011
คำตอบ:
ดังที่ได้บอกไว้ที่MySQL การใช้คอลัมน์สตริงพร้อมข้อความวันที่เป็นฟิลด์วันที่คุณสามารถทำได้
SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM yourtable
คุณยังสามารถจัดการสตริงวันที่เหล่านี้ในส่วนWHEREคำสั่ง ตัวอย่างเช่น
SELECT whatever
FROM yourtable
WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY
คุณสามารถจัดการเค้าโครงวันที่ / เวลาทุกชนิดได้ด้วยวิธีนี้ โปรดดูspecifiers รูปแบบสำหรับDATE_FORMAT()ฟังก์ชั่นSTR_TO_DATE()ที่จะเห็นสิ่งที่คุณสามารถใส่ลงไปในพารามิเตอร์ที่สองของ
STR_TO_DATE('12/31/2011', '%m/%d/%Y')
%d/%m/%Yเช่นนั้นSTR_TO_DATE('31/11/1015', '%d/%m/%Y')โปรดทราบว่าผลลัพธ์จะอยู่ในYYYY-MM-DDรูปแบบDATE ข้อมูล
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
ใช้หน้าด้านบนเพื่ออ้างอิงฟังก์ชั่นเพิ่มเติมใน MySQL
SELECT STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM table
พูดเช่นใช้แบบสอบถามด้านล่างเพื่อรับผลลัพธ์
SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table
สำหรับรูปแบบ String ให้ใช้ลิงค์ด้านล่าง
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
นี่คืออีกสองตัวอย่าง
ในการแสดงวันเดือนและปีคุณสามารถใช้:
select STR_TO_DATE('14/02/2015', '%d/%m/%Y');
ซึ่งผลิต:
2015/02/14
หากต้องการส่งออกเวลาคุณสามารถใช้:
select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');
ซึ่งผลิต:
2017-02-14 23:38:12