Skip to main content
Documents
Clauses StatementsKeywordsExpressionsFunctionsIndexesPerformance Optimization

MySQL STR_TO_DATE() Function

The `STR_TO_DATE()` function in MySQL is used to convert a string into a date based on a specified format. It is particularly useful for parsing date strings into date objects that MySQL can work with.

Usage

The `STR_TO_DATE()` function is typically used when you need to transform a string into a date format to perform date-related operations. This function requires the string to be converted and the format in which the date is specified.

STR_TO_DATE(string, format);

In this syntax, `string` is the date string you want to convert, and `format` is the format that matches the string structure.

Common Format Specifiers

Here are some common format specifiers you can use with `STR_TO_DATE()`:

  • %d: Day of the month (01 to 31)
  • %m: Month (01 to 12)
  • %Y: Year (four digits)
  • %H: Hour (00 to 23)
  • %i: Minutes (00 to 59)
  • %s: Seconds (00 to 59)
  • %W: Weekday name (e.g., Sunday)
  • %b: Abbreviated month name (e.g., Jan)

Examples

1. Basic String to Date Conversion

SELECT STR_TO_DATE('10-12-2023', '%d-%m-%Y');

This example converts the string '10-12-2023' into a date using the format '%d-%m-%Y', which translates to '10th December 2023'.

2. Conversion with Time

SELECT STR_TO_DATE('2023/12/10 14:30:00', '%Y/%m/%d %H:%i:%s');

Here, the function converts '2023/12/10 14:30:00' into a date and time object, interpreting the format as 'Year/Month/Day Hour:Minute:Second'.

3. Parsing Different Date Formats

SELECT STR_TO_DATE('Saturday, Dec 10 2023', '%W, %b %d %Y');

This example demonstrates converting a string with a different date format 'Saturday, Dec 10 2023' using '%W, %b %d %Y' to interpret day names and abbreviated month names.

4. Example of Mismatched Format

SELECT STR_TO_DATE('2023-10-12', '%d-%m-%Y');

This example returns `NULL` because the format does not match the input string, highlighting the importance of matching the format string exactly to the input string's structure.

Tips and Best Practices

  • Ensure format accuracy. The format string must match the date string's structure exactly for successful conversion.
  • Handle NULLs gracefully. If the format does not match, the function returns `NULL`; use `COALESCE()` to manage potential nulls.
  • Leverage MySQL's date functions. After conversion, utilize MySQL's date functions to manipulate and query date data efficiently.
  • Test with sample data. Validate the function with sample data to ensure the format string correctly corresponds to the input string's structure.
  • Consider locale settings. Be aware that date format specifiers may vary based on locale, which can affect parsing.

Common Pitfalls and Error Messages

  • Format Mismatch: A common pitfall is a mismatch between the date string and the format string, resulting in a `NULL` value.
  • Locale Differences: Ensure the format specifiers match the locale settings if the date string uses localized month or day names.

SQL Upskilling for Beginners

Gain the SQL skills to interact with and query your data.
Start Learning for Free