Skip to main content
Documents
Share
LinkedIn
Facebook
Twitter
Copy
ClausesStatementsKeywordsExpressionsFunctions

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.