ฉันมีstring
คอลัมน์ซึ่งทำหน้าที่เป็นและฉันต้องการที่จะเลือกเป็นdate
date
เป็นไปได้ไหม?
รูปแบบข้อมูลตัวอย่างของฉันจะเป็น; month/day/year
->12/31/2011
ฉันมีstring
คอลัมน์ซึ่งทำหน้าที่เป็นและฉันต้องการที่จะเลือกเป็นdate
date
เป็นไปได้ไหม?
รูปแบบข้อมูลตัวอย่างของฉันจะเป็น; 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