DEV Community

Cover image for How to Use SQL CONVERT for Clean Type Conversions
DbVisualizer
DbVisualizer

Posted on

How to Use SQL CONVERT for Clean Type Conversions

Type conversion in SQL can be tricky, especially across different database systems. SQL Server and MySQL both offer a CONVERT function, but they work a bit differently. This quick guide shows you how to use CONVERT in both systems to make your data formatting tasks easier.

How SQL CONVERT Works

SQL Server

SELECT CONVERT(int, 42.35); -- Output: 42
Enter fullscreen mode Exit fullscreen mode

You can use styles to format dates or strings in specific ways.

MySQL

SELECT CONVERT(27, CHAR); -- Output: '27'
Enter fullscreen mode Exit fullscreen mode

Other examples:

  • From string to date:

    SELECT CONVERT('2024-01-18', DATE);
    
  • From float to int (rounding):

    SELECT CONVERT(47.5, SIGNED); -- Returns 48
    
  • Datetime to date:

    SELECT CONVERT(NOW(), DATE);
    

Use USING to switch character sets:

SELECT CONVERT('Café' USING ASCII); -- Might return 'Caf?'
Enter fullscreen mode Exit fullscreen mode

FAQ

Is CONVERT supported everywhere?

No. It’s limited to certain systems like SQL Server and MySQL.

Do all conversions succeed?

Some don’t. You might get truncated or inaccurate results depending on the type.

CAST or CONVERT – which is better?

Use CAST for cross-DB support. Use CONVERT for more control in specific databases.

Other tools besides CONVERT?

Yes. Use DATE_FORMAT(), STR_TO_DATE() etc., for specialized tasks.

Conclusion

If you need to format or convert values in MySQL or SQL Server, CONVERT is a function worth knowing. With a little practice, you can avoid common data type issues. Read SQL CONVERT: The Handbook of Data Conversion in SQL for more insights.

Top comments (0)