MySQL Tutorial/Date Time Functions/STR TO DATE

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

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

   <source lang="sql">

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></source>


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

   <source lang="sql">

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></source>


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:

   <source lang="sql">

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></source>