Mysql Str_to_date Function

MySQL: STR_TO_DATE Function

This tutorial explains how to use the MySQL STR_TO_DATE function with syntax and examples.

Description

The MySQL STR_TO_DATE function takes a string and returns a date specified by a format mask.

Syntax

The syntax for the STR_TO_DATE function in MySQL is:

STR_TO_DATE( string, format_mask )

Parameters or Arguments

string

The string value to format as a date.

format_mask

The format to apply to string. The following is a list of options for the format_mask parameter. These parameters can be used in many combinations.

Value Description
%a Weekday name abbreviated (Sun to Sat)
%b Month name abbreviated (Jan to Dec)
%c Month as a numeric value (0 to 12)
%D Day of the month as a numeric value, followed by suffix (1st, 2nd, 3rd, ...)
%d Day of the month as a numeric value (01 to 31)
%e Day of the month as a numeric value (0 to 31)
%f Microseconds (000000 to 999999)
%H Hour (00 to 23)
%h Hour (00 to 12)
%I Hour (00 to 12)
%i Minutes (00 to 59)
%j Day of the year (001 to 366)
%k Hour (00 to 23)
%l Hour (1 to 12)
%M Month name in full (January to December)
%m Month name as a numeric value (00 to 12)
%p AM or PM
%r Time in 12 hour AM or PM format (hh:mm:ss AM/PM)
%S Seconds (00 to 59)
%s Seconds (00 to 59)
%T Time in 24 hour format (hh:mm:ss)
%U Week where Sunday is the first day of the week (00 to 53)
%u Week where Monday is the first day of the week (00 to 53)
%V Week where Sunday is the first day of the week (01 to 53) Available starting in MySQL 3.23.8 and used with %X
%v Week where Monday is the first day of the week (01 to 53) Available starting in MySQL 3.23.8 and used with %X
%W Weekday name in full (Sunday to Saturday)
%w Day of the week where Sunday=0 and Saturday=6
%X Year for the week where Sunday is the first day of the week Available starting in MySQL 3.23.8 and used with %V
%x Year for the week where Monday is the first day of the week Available starting in MySQL 3.23.8 and used with %v
%Y Year as a numeric, 4-digit value
%y Year as a numeric, 2-digit value

Note

  • The STR_TO_DATE function will return a datetime value, if the string contains both valid date and time parts.
  • The STR_TO_DATE function will return a date value, if the string contains only valid date parts.
  • The STR_TO_DATE function will return a time value, if the string contains only valid time parts.
  • The STR_TO_DATE function will return a NULL value, if it is unable to extract valid date and time parts using the format_mask.

Applies To

The STR_TO_DATE function can be used in the following versions of MySQL:

  • MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23

Example

Let's look at some MySQL STR_TO_DATE function examples and explore how to use the STR_TO_DATE function in MySQL.

For example:

mysql> SELECT STR_TO_DATE('February 01 2014', '%M %d %Y');
Output: '2014-02-01'

mysql> SELECT STR_TO_DATE('March,8,2014', '%M,%e,%Y');
Output: '2014-03-08'

mysql> SELECT STR_TO_DATE('Friday, February 28, 2014', '%W, %M %e, %Y');
Output: '2014-02-28'

mysql> SELECT STR_TO_DATE('2014,2,28 09', '%Y,%m,%d %h');
Output: '2014-02-28 09:00:00'

mysql> SELECT STR_TO_DATE('2014,2,28 09,30,05', '%Y,%m,%d %h,%i,%s');
Output: '2014-02-28 09:30:05'

mysql> SELECT STR_TO_DATE('10,15,30', '%h,%i,%s');
Output: '10:15:30'