SQL

Cómo convertir un valor a otro tipo de dato con la función CAST de SQL Server

Estrada Web Group
Estrada Web Group
Cómo convertir un valor a otro tipo de dato con la función CAST de SQL Server

Resumen: en este tutorial, aprenderás a usar 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;

Devuelve 2 como un número:

result
-----------
2

(1 row affected)

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

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

A diferencia de las conversiones implícitas, tenemos 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;

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

CAST ( expression AS target_type [ ( length ) ] )  

En esta sintaxis:

  • expression puede ser un valor literal o una expresión válida de cualquier tipo que se convertirá.
  • target_type es el tipo de datos de destino al que desea convertir la expresión. Incluye INT, BIT, SQL_VARIANT, etc. Ten 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. La longitud predeterminada 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

Veamos algunos ejemplos del uso de la función CAST().

A) Usando la función CAST() para convertir un decimal a un entero

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

SELECT CAST(5.95 AS INT) result;

Resultado:

result
-----------
5

(1 row affected)

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

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

SELECT CAST(5.95 AS DEC(3,0)) result;

Resultado:

result
-------
6

Cuando conviertes un valor a otro tipo de datos con diferente tamaño, SQL Server devolverá un resultado truncado o un valor redondeado según las siguientes reglas:

Del tipo de datos Al tipo de datos Comportamiento
numeric numeric Round
numeric int Truncate
numeric money Round
money int Round
money numeric Round
float int Truncate
float numeric Round
float datetime Round
datetime int Round

C) Uso de la función CAST() para convertir una cadena en un valor de fecha y hora

Este ejemplo usa la función CAST() para convertir la cadena '2019-03-14' en una fecha y hora:

SELECT
    CAST('2019-03-14' AS DATETIME) result;

Resultado:

result
-----------------------
2019-03-14 00:00:00.000

(1 row affected)

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

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


CAST de SQL Server

La siguiente declaración usa la función CAST() para convertir las ventas mensuales en 2017 a valores enteros.

SELECT
    MONTH(order_date) month,
    CAST(SUM(quantity * list_price * (1 - discount)) AS INT) amount
FROM sales.orders o
    INNER JOIN sales.order_items i ON o.order_id = i.order_id
WHERE
    YEAR(order_date) = 2017
GROUP BY
    MONTH(order_date)
ORDER BY
    month;

La siguiente imagen muestra la salida:

función cast de sql server

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

 

Compartir artículo:

Más artículos geniales

¿Cómo obtener la cantidad de registros en SQL Server con la función COUNT()?

¿Cómo obtener la cantidad de registros en SQL Server con la función COUNT()?

En este tutorial, aprenderás a usar la función COUNT() de SQL Server para obtener la cantidad de elementos en un conjunto.

Ver artículo completo
Cómo eliminar columnas de una tabla en SQL Server con ALTER TABLE y DROP COLUMN

Cómo eliminar columnas de una tabla en SQL Server con ALTER TABLE y DROP COLUMN

Resumen: en este tutorial, aprenderás cómo usar la declaración de columna ALTER TABLE DROP COLUMN de SQL Server para eliminar una o más columnas de una tabla existente.

Ver artículo completo
Tipos de datos GUID de SQL Server

Tipos de datos GUID de SQL Server

Resumen: en este tutorial, aprenderás sobre los tipos de datos GUID de SQL Server y cómo usar la función NEWID() para generar valores GUID.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla