Función CAST de SQL Server

Resumen: en este tutorial, aprenderás a utilizar la función CAST() de SQL Server para convertir un valor o una expresión de un tipo a otro.

Introducción a la función CAST() de SQL Server

Veamos la siguiente consulta:

SELECT 1 + '1' AS result;
Code language: PHP (php)

Devuelve 2 como número:

result-----------2(1 row affected)

En esta sentencia, SQL Server convierte implícitamente la cadena de caracteres '1' en el número 1.

Cuando se utilizan dos valores con diferentes tipos de datos, SQL Server intentará convertir el tipo de datos inferior al superior antes de poder procesar el cálculo. Esto se conoce como una conversión implícita en SQL Server.

En contraste con las conversiones implícitas, tenemos las conversiones explícitas en las que se llama a la función CAST() para convertir explícitamente un valor de un tipo a otro:

SELECT 1 + CAST(1 AS INT) result;
Code language: PHP (php)

La sintaxis de la función CAST() es la siguiente:

CAST ( expression AS target_type )
Code language: CSS (css)

En esta sintaxis:

  • expression puede ser un valor literal o una expresión válida de cualquier tipo que será convertida.
  • target_type es el tipo de datos de destino al que se quiere convertir la expresión. Incluye INTBITSQL_VARIANT, etc. Tenga en cuenta que no puede ser un tipo de datos de alias.
  • length es un entero opcional que especifica la longitud del tipo de destino. El length por defecto es 30.

La función CAST() devuelve la expresión convertida al tipo de datos de destino.

Ejemplos de la función CAST() de SQL Server

Vamos a ver algunos ejemplos de uso de la función CAST().

A) Uso de la función CAST() para convertir un decimal a un entero ejemplo

Este ejemplo utiliza la función CAST() para convertir el número decimal 5.95 a un entero:

SELECT CAST(5.95 AS INT) result;
Code language: CSS (css)

Aquí está la salida:

result-----------5(1 row affected)

B) Uso de la función CAST() para convertir un decimal a otro decimal con diferente longitud

El siguiente ejemplo utiliza la función CAST() para convertir el número decimal 5.95 a otro número decimal con la escala de cero:

SELECT CAST(5.95 AS DEC(3,0)) result;
Code language: CSS (css)

La salida es la siguiente:

result-------6

Cuando se convierte un valor de los tipos de datos en diferentes lugares, SQL Server devolverá un resultado truncado o un valor redondeado basado en las siguientes reglas:

.

De Datos Type To Data Type Behavior
numérico numérico Ronda
numérico int Truncar numérico dinero Ronda
dinero int Ronda
dinero numérico Ronda
float int Truncate float numérico Round
float numérico Round
fatetime int Ronda

C) Uso de la función CAST() para convertir una cadena a un valor datetime ejemplo

Este ejemplo utiliza la función CAST() para convertir la cadena '2019-03-14' a un datetime:

SELECT CAST('2019-03-14' AS DATETIME) result;
Code language: PHP (php)

La salida es:

result-----------------------2019-03-14 00:00:00.000(1 row affected)
Code language: CSS (css)

D) Uso de la función CAST() con operadores aritméticos

Utilizaremos las tablas sales.orders y sales.order_items de la base de datos de ejemplo para la demostración:

Tablas de muestra

La siguiente sentencia utiliza la función CAST() para convertir las ventas mensuales de 2017 a valores enteros.

SELECT MONTH(order_date) month, CAST(SUM(quantity * list_price * (1 - discount)) AS INT) amountFROM sales.orders o INNER JOIN sales.order_items i ON o.order_id = i.order_idWHERE YEAR(order_date) = 2017GROUP BY MONTH(order_date)ORDER BY month;
Code language: PHP (php)

La siguiente imagen muestra la salida:

Ejemplo de función CAST de SQL Server

En este tutorial, has aprendido a utilizar la función CAST() de SQL Server para convertir un valor de un tipo a otro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *