Bird
Raised Fist0
MySQLquery~20 mins

Type casting and conversion in MySQL - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Type Casting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
1:30remaining
Output of CAST with string to integer conversion
What is the output of the following MySQL query?

SELECT CAST('123abc' AS UNSIGNED) AS result;
MySQL
SELECT CAST('123abc' AS UNSIGNED) AS result;
A123abc
B0
CSyntax error
D123
Attempts:
2 left
💡 Hint
MySQL converts strings to numbers by reading digits from the start until a non-digit is found.
❓ query_result
intermediate
1:30remaining
Result of CONVERT with incompatible type
What is the result of this MySQL query?

SELECT CONVERT('abc123', SIGNED) AS result;
MySQL
SELECT CONVERT('abc123', SIGNED) AS result;
Aabc123
B123
C0
DNULL
Attempts:
2 left
💡 Hint
When the string does not start with digits, MySQL returns zero for numeric conversion.
📝 Syntax
advanced
2:00remaining
Identify the correct syntax for casting to CHAR
Which of the following MySQL queries correctly casts the integer 100 to a CHAR type?
ASELECT CAST(100 AS CHAR);
BSELECT CAST(100 TO CHAR);
CSELECT CONVERT(100, CHAR);
DSELECT CONVERT(100 AS CHAR);
Attempts:
2 left
💡 Hint
CAST uses AS keyword, CONVERT uses comma to separate arguments.
❓ query_result
advanced
1:30remaining
Effect of implicit conversion in arithmetic operation
What is the output of this MySQL query?

SELECT '10' + 5 AS result;
MySQL
SELECT '10' + 5 AS result;
A15
B'105'
C10 5
DError
Attempts:
2 left
💡 Hint
MySQL converts strings to numbers automatically in arithmetic expressions.
🧠 Conceptual
expert
2:00remaining
Understanding behavior of CAST with floating point to integer
Consider the query:

SELECT CAST(123.987 AS SIGNED) AS result;

What is the value of result?
MySQL
SELECT CAST(123.987 AS SIGNED) AS result;
A124
B123
C123.987
DError
Attempts:
2 left
💡 Hint
Casting from float to integer truncates the decimal part in MySQL.

Practice

(1/5)
1. What does the CAST() function do in MySQL?
easy
A. It changes the database user permissions.
B. It creates a new table in the database.
C. It converts a value from one data type to another.
D. It deletes rows from a table.

Solution

  1. Step 1: Understand the purpose of CAST()

    The CAST() function is used to change the data type of a value, for example from string to integer.
  2. Step 2: Compare with other options

    Options A, B, and C describe unrelated database operations, not type conversion.
  3. Final Answer:

    It converts a value from one data type to another. -> Option C
  4. Quick Check:

    CAST() = type conversion [OK]
Hint: CAST() changes data types, not structure or permissions [OK]
Common Mistakes:
  • Thinking CAST() creates or deletes tables
  • Confusing CAST() with permission commands
  • Assuming CAST() modifies data values without type change
2. Which of the following is the correct syntax to convert a string '123' to an integer in MySQL?
easy
A. CAST('123' AS SIGNED)
B. CONVERT('123', TO INTEGER)
C. CAST('123' TO INTEGER)
D. CONVERT('123' AS INT)

Solution

  1. Step 1: Recall correct CAST syntax

    In MySQL, the correct syntax is CAST(value AS type), so CAST('123' AS SIGNED) is valid.
  2. Step 2: Check other options for syntax errors

    Options A, B, and D use incorrect syntax: A uses 'TO' instead of 'AS', B and D misuse CONVERT syntax, which is invalid in MySQL.
  3. Final Answer:

    CAST('123' AS SIGNED) -> Option A
  4. Quick Check:

    CAST(value AS type) = correct syntax [OK]
Hint: Use CAST(value AS type) format for conversions [OK]
Common Mistakes:
  • Using TO instead of AS in CAST
  • Using CONVERT with wrong syntax
  • Mixing syntax from other SQL dialects
3. What is the result of this query?
SELECT CAST('2023-06-15' AS DATE) + INTERVAL 5 DAY AS new_date;
medium
A. 2023-06-20
B. 2023-06-10
C. 2023-06-15 00:00:00
D. Error: Invalid date operation

Solution

  1. Step 1: Convert string to DATE type

    CAST('2023-06-15' AS DATE) converts the string to a date value representing June 15, 2023.
  2. Step 2: Add 5 days interval

    Adding INTERVAL 5 DAY moves the date forward by 5 days, resulting in June 20, 2023.
  3. Final Answer:

    2023-06-20 -> Option A
  4. Quick Check:

    Date + 5 days = 2023-06-20 [OK]
Hint: Add intervals to dates after casting string to DATE [OK]
Common Mistakes:
  • Forgetting to cast string to DATE before adding interval
  • Adding interval to string without conversion
  • Expecting time part in result
4. Identify the error in this query:
SELECT CONVERT('abc' AS UNSIGNED);
medium
A. Returns NULL
B. No error, returns 0
C. Runtime error: cannot convert 'abc' to number
D. Syntax error: wrong CONVERT syntax

Solution

  1. Step 1: Check CONVERT syntax

    CONVERT(value, type) is correct syntax in MySQL, but 'AS' keyword is invalid here, so syntax error would occur.
  2. Step 2: Analyze actual query

    The query uses CONVERT('abc' AS UNSIGNED), which is invalid syntax and causes syntax error, but if corrected to CONVERT('abc', UNSIGNED), it returns 0 because 'abc' cannot be converted to a number.
  3. Final Answer:

    Syntax error: wrong CONVERT syntax -> Option D
  4. Quick Check:

    CONVERT() syntax must be CONVERT(value, type) [OK]
Hint: Use CONVERT(value, type) without AS keyword [OK]
Common Mistakes:
  • Using AS keyword inside CONVERT()
  • Expecting NULL instead of 0 for invalid numeric conversion
  • Confusing CONVERT syntax with CAST
5. You have a table sales with a column amount stored as VARCHAR. You want to calculate the total sales as a number. Which query correctly converts and sums the amounts?
hard
A. SELECT SUM(amount) FROM sales;
B. SELECT SUM(CAST(amount AS DECIMAL(10,2))) FROM sales;
C. SELECT SUM(CONVERT(amount AS CHAR)) FROM sales;
D. SELECT SUM(CAST(amount AS DATE)) FROM sales;

Solution

  1. Step 1: Understand data type of amount

    amount is VARCHAR, so summing directly treats values as strings, causing wrong results or errors.
  2. Step 2: Convert amount to numeric type before summing

    CAST(amount AS DECIMAL(10,2)) converts string to decimal number, allowing correct sum calculation.
  3. Step 3: Check other options

    SELECT SUM(amount) FROM sales; sums strings (incorrect), C converts to CHAR (string again), D converts to DATE (invalid for amounts).
  4. Final Answer:

    SELECT SUM(CAST(amount AS DECIMAL(10,2))) FROM sales; -> Option B
  5. Quick Check:

    Convert strings to numbers before SUM [OK]
Hint: CAST strings to DECIMAL before SUM to avoid errors [OK]
Common Mistakes:
  • Summing VARCHAR without conversion
  • Casting to wrong type like DATE or CHAR
  • Using CONVERT with wrong syntax
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard