SQL Server CAST() Function


SQL Server CAST() Function

The SQL Server CAST() function converts an expression from one data type to another. This function is useful for ensuring that data is in the correct format for processing.


Syntax

SELECT CAST(expression AS data_type);

The CAST() function takes two arguments:

  • expression: The value to be converted.
  • data_type: The target data type.

Example SQL Server CAST() Function Queries

Let's look at some examples of SQL Server CAST() function queries:

1. Casting a String to an Integer

SELECT CAST('123' AS INT) AS int_value;

This query converts the string '123' to an integer. The result will be:

int_value
---------
123

2. Casting an Integer to a String

SELECT CAST(123 AS VARCHAR(10)) AS string_value;

This query converts the integer 123 to a string. The result will be:

string_value
-------------
123

3. Casting a Date to a String

SELECT CAST('2024-06-01' AS VARCHAR(10)) AS string_date;

This query converts the date '2024-06-01' to a string. The result will be:

string_date
------------
2024-06-01

4. Casting a String to a Date

SELECT CAST('2024-06-01' AS DATE) AS date_value;

This query converts the string '2024-06-01' to a date. The result will be:

date_value
----------
2024-06-01

5. CAST() with a Column

SELECT order_id, CAST(order_amount AS DECIMAL(10, 2)) AS decimal_amount
FROM orders;

This query converts the order_amount column to a decimal data type with two decimal places. The result will show the original order_id and the corresponding decimal_amount.

6. CAST() with a Variable

DECLARE @amount VARCHAR(10) = '123.45';
SELECT CAST(@amount AS DECIMAL(10, 2)) AS decimal_amount;

This query uses a variable to store a string value and then converts it to a decimal data type with two decimal places. The result will be:

decimal_amount
--------------
123.45

Full Example

Let's go through a complete example that includes creating a table, inserting data, and using the CAST() function.

Step 1: Creating a Table

This step involves creating a new table named transactions to store some sample data with transaction amounts.

CREATE TABLE transactions (
    id INT PRIMARY KEY,
    transaction_amount VARCHAR(50)
);

In this example, we create a table named transactions with columns for id and transaction_amount.

Step 2: Inserting Data into the Table

This step involves inserting some sample data into the transactions table.

INSERT INTO transactions (id, transaction_amount) VALUES (1, '100.50');
INSERT INTO transactions (id, transaction_amount) VALUES (2, '200.75');
INSERT INTO transactions (id, transaction_amount) VALUES (3, '300.25');

Here, we insert data into the transactions table.

Step 3: Using the CAST() Function

This step involves using the CAST() function to convert the transaction_amount column to a decimal data type.

SELECT id, transaction_amount, CAST(transaction_amount AS DECIMAL(10, 2)) AS decimal_amount
FROM transactions;

This query retrieves the id, transaction_amount, and the decimal value of the transaction_amount column for each row in the transactions table. The result will be:

id  transaction_amount  decimal_amount
--- ------------------- --------------
1   100.50              100.50
2   200.75              200.75
3   300.25              300.25

Conclusion

The SQL Server CAST() function is a powerful tool for converting expressions from one data type to another. Understanding how to use the CAST() function and its syntax is essential for effective data processing and manipulation in SQL Server.