MySQL Tutorial/Date Time Functions/STR TO DATE

Материал из SQL эксперт
Перейти к: навигация, поиск

SELECT STR_TO_DATE("00/00/0000", "%m/%d/%Y");

mysql>
mysql> SELECT STR_TO_DATE("00/00/0000", "%m/%d/%Y");
+---------------------------------------+
| STR_TO_DATE("00/00/0000", "%m/%d/%Y") |
+---------------------------------------+
| 0000-00-00                            |
+---------------------------------------+
1 row in set (0.00 sec)
mysql>


SELECT STR_TO_DATE("04/31/2004", "%m/%d/%Y");

mysql>
mysql> SELECT STR_TO_DATE("04/31/2004", "%m/%d/%Y");
+---------------------------------------+
| STR_TO_DATE("04/31/2004", "%m/%d/%Y") |
+---------------------------------------+
| 2004-04-31                            |
+---------------------------------------+
1 row in set (0.00 sec)
mysql>


STR_TO_DATE(str,format)

STR_TO_DATE(str,format) is the inverse of the DATE_FORMAT() function.

STR_TO_DATE() returns a DATETIME value.

The following specifiers may be used in the format string.

The "%" character is required before format specifier characters.

Specifier Description %a Abbreviated weekday name (Sun..Sat) %b Abbreviated month name (Jan..Dec) %c Month, numeric (0..12) %D Day of the month with English suffix (0th, 1st, 2nd, 3rd, ?-) %d Day of the month, numeric (00..31) %e Day of the month, numeric (0..31) %f Microseconds (000000..999999) %H Hour (00..23) %h Hour (01..12) %I Hour (01..12) %i Minutes, numeric (00..59) %j Day of year (001..366) %k Hour (0..23) %l Hour (1..12) %M Month name (January..December) %m Month, numeric (00..12) %p AM or PM %r Time, 12-hour (hh:mm:ss followed by AM or PM) %S Seconds (00..59) %s Seconds (00..59) %T Time, 24-hour (hh:mm:ss) %U Week (00..53), where Sunday is the first day of the week %u Week (00..53), where Monday is the first day of the week %V Week (01..53), where Sunday is the first day of the week; used with %X %v Week (01..53), where Monday is the first day of the week; used with %x %W Weekday name (Sunday..Saturday) %w Day of the week (0=Sunday..6=Saturday) %X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V %x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v %Y Year, numeric, four digits %y Year, numeric (two digits) %% A literal "%" character %x x, for any "x" not listed above

To convert a year-week to a date, then you should also specify the weekday:

mysql>
mysql>
mysql> SELECT STR_TO_DATE("200442 Monday", "%X%V %W");
+-----------------------------------------+
| STR_TO_DATE("200442 Monday", "%X%V %W") |
+-----------------------------------------+
| 2004-10-18                              |
+-----------------------------------------+
1 row in set (0.00 sec)
mysql>