จะแปลงสิ่งต่อไปนี้เป็นวันที่สำหรับการแทรก / อัปเดตลงในฟิลด์ TIMESTAMP
หรือ DATE
ใน MySQL ได้อย่างไร
'15-Dec-09'
DATE_FORMAT()
ใช้เพื่อจัดรูปแบบวันที่ แต่ไม่ใช่วิธีอื่น
จะแปลงสิ่งต่อไปนี้เป็นวันที่สำหรับการแทรก / อัปเดตลงในฟิลด์ TIMESTAMP
หรือ DATE
ใน MySQL ได้อย่างไร
'15-Dec-09'
DATE_FORMAT()
ใช้เพื่อจัดรูปแบบวันที่ แต่ไม่ใช่วิธีอื่น
คุณอาจต้องการใช้ STR_TO_DATE()
ฟังก์ชัน มันเป็นสิ่งที่ตรงกันข้ามของ DATE_FORMAT()
< /a> ฟังก์ชัน
STR_TO_DATE(str,รูปแบบ)
นี่คือค่าผกผันของฟังก์ชัน
DATE_FORMAT()
ต้องใช้สตริงstr
และสตริงรูปแบบformat
STR_TO_DATE()
ส่งคืนค่า aDATETIME
หากสตริงรูปแบบมีทั้งส่วนของวันที่และเวลา หรือค่าDATE
หรือTIME
หากสตริงมีเพียงส่วนของวันที่หรือเวลา หากค่าวันที่ เวลา หรือวันที่และเวลาที่ดึงมาจากstr
ไม่ถูกต้องSTR_TO_DATE()
จะส่งกลับNULL
และแสดงคำเตือน
ตัวอย่าง:
SELECT STR_TO_DATE('15-Dec-09', '%d-%b-%y') AS date;
+------------+
| date |
+------------+
| 2009-12-15 |
+------------+
1 row in set (0.00 sec)
STR_TO_DATE('6/20/2013', '%c/%d/%Y')
หรือไม่?
- person Fluff; 10.03.2014
นี่คือตารางรูปแบบ %-codes ที่ใช้ใน DATE_FORMAT() และ STR_TO_DATE().
-----examples-for------
1999-12-31 2000-01-02
23:59:58.999 03:04:05 identical to
------------ ---------- -------------
%a Fri Sun LEFT(DAYNAME(d),3)
%b Dec Jan LEFT(MONTHNAME(d),3)
%c 12 1 MONTH(d)
%D 31st 2nd DAYOFMONTH(d)+st,nd,rd
%d 31 02 LPAD(DAYOFMONTH(d),0,2)
%e 31 2 DAYOFMONTH(d)
%f 999000 000000 LPAD(MICROSECOND(t),6,0)
%H 23 03 LPAD(HOUR(t),2,0)
%h 11 03
%I 11 03
%i 59 04 LPAD(MINUTE(t),2,0)
%j 365 002
%k 23 3 HOUR(t)
%l 11 3
%M December January MONTHNAME(d)
%m 12 01 LPAD(MONTH(d),2,0)
%p PM AM
%r 11:59:58 PM 03:04:05 AM
%S 58 05 LPAD(SECOND(t),2,0)
%s 58 05 LPAD(SECOND(t),2,0)
%T 23:59:58 03:04:05
%U 52 01 LPAD(WEEK(d,0),2,0)
%u 52 00 LPAD(WEEK(d,1),2,0)
%V 52 01 RIGHT(YEARWEEK(d,2),2)
%v 52 52 RIGHT(YEARWEEK(d,3),2)
%W Friday Sunday DAYNAME(d)
%w 5 0 DAYOFWEEK(d)-1
%X 1999 2000 LEFT(YEARWEEK(d,2),4)
%x 1999 1999 LEFT(YEARWEEK(d,3),4)
%Y 1999 2000 YEAR(d)
%y 99 00 RIGHT(YEAR(d),2)
%% % %
or
%X%V 199952 200001 YEARWEEK(d,2)
%x%v 199952 199952 YEARWEEK(d,3)
อย่างไรก็ตามไม่มีรหัส % สำหรับนาทีหรือวินาทีที่ไม่มีการเติม:
59 4 MINUTE(t)
58 5 SECOND(t)
ในการดำเนินการ:
'15-Dec-09' == DATE_FORMAT('2009-12-15', '%d-%b-%y')
'2009-12-15' == STR_TO_DATE('15-Dec-09', '%d-%b-%y')