SQL Server CONVERT: Guía Completa para Convertir Datos en SQL Server

IniciosqlSQL Server CONVERT
SQL Server CONVERT: Guía Completa para Convertir Datos en SQL Server

by Juan Carlos García

13-Jun-2024

(1)

Suscribirme al canal:

Hola viajero WEB, bienvenido a EWebik, ¿Sabias que? La función CONVERT en SQL Server es una herramienta poderosa que permite transformar datos de un tipo a otro, esta capacidad es crucial cuando se trabaja con bases de datos que contienen distintos tipos de datos y se requiere una uniformidad para realizar cálculos, comparaciones o simplemente para presentación.

En esta guía, exploraremos cómo utilizar la función CONVERT, sus diferentes sintaxis, y proporcionaremos ejemplos prácticos y mejores prácticas para asegurar que tus conversiones de datos se realicen de manera eficiente y sin errores.

Ya seas un desarrollador experimentado o un principiante en SQL Server, esta guía te ayudará a dominar el uso de CONVERT en tus consultas SQL.

¡No te puedes perder las nuevas clases 🧐!

SQL

SQL

SQL: Curso gratuito de SQL ¿Qué es el lenguaje SQL? Sintaxis y sentencias básicas

CREATE, DROP Y ALTER DATABASE

CREATE, DROP Y ALTER DATABASE

¿Cómo crear (CREATE DATABASE), modificar (ALTER DATABASE) y eliminar (DROP DATABASE) una base de datos en SQL Server?

CREATE, DROP Y ALTER TABLE

CREATE, DROP Y ALTER TABLE

Manejo de tablas en SQL Server: CREATE TABLE, ALTER TABLE y DROP TABLE.

SELECT SQL

SELECT SQL

SELECT SQL SERVER: ¿Cómo seleccionar y consultar datos en SQL Server?

INSERT SQL

INSERT SQL

INSERT SQL SERVER: ¿Cómo insertar datos en una tabla desde SQL Server? Sintaxis y ejemplos.

JOIN SQL

JOIN SQL

JOIN SQL: ¿Qué son y cómo funcionan INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN y CROSS JOIN?

Update SQL

Update SQL

UPDATE SQL: ¿Cómo actualizar datos en una tabla en SQL Server?

DELETE SQL

DELETE SQL

DELETE SQL y TRUNCATE TABLE: ¿Cómo eliminar datos de una tabla en SQL Server?

Stored Procedure en SQL Server

Stored Procedure en SQL Server

Stored Procedure en SQL Server: ¿Cómo crear, modificar y ejecutar procedimientos almacenados en SQL Server?

Conexión Remota en SQL Server

Conexión Remota en SQL Server

Habilitar la Conexión Remota en SQL Server con VirtualBox

Connection String

Connection String

Connection String de SQL Server: Una Guía Completa para Establecer Conexiones con la Base de Datos

SQL Server SUBSTRING

SQL Server SUBSTRING

Guía Completa de SQL Server SUBSTRING: Uso y Ejemplos

CASE en SQL Server

CASE en SQL Server

Cláusula CASE en SQL Server: Uso y Ejemplos de Condicionales en Consultas

SQL Server REPLACE

SQL Server REPLACE

SQL Server REPLACE: Función para la manipulación de cadenas de texto

IF en SQL Server

IF en SQL Server

Sentencias IF, IF-ELSE e IF-EXISTS en SQL Server: Guía completa.

IS NULL en SQL Server

IS NULL en SQL Server

IS NULL en SQL Server: Comprendiendo la Verificación de Valores Nulos e IS NOT NULL

SQL Server CONVERT

SQL Server CONVERT

SQL Server CONVERT: Guía Completa para Convertir Datos en SQL Server

Libros para continuar tu aprendizaje en base de datos

Adquiere estos libros para mejorar tus habilidades en base de datos

BASE DE DATOS: es una tarea fácil (Spanish Edition)

BASE DE DATOS: es una tarea fácil (Spanish Edition)

Hosting Digital Oceans

Hosting Digital Oceans

Con nuestro link de recomendación de EWebik, recibe 200 dólares en crédito para probar tus proyectos por 60 días.

  • VPS que van desde los 5 dólares.
  • VPS escalables.
  • Levanta tus servidores con unos pocos clics y crécelos cuando los necesites.
Diseño de Bases de Datos - Un enfoque práctico: Aprende a diseñar bases de datos desde el modelo conceptual hasta el modelo relacional con esta guía práctica con ejemplos (Spanish Edition)

Diseño de Bases de Datos - Un enfoque práctico: Aprende a diseñar bases de datos desde el modelo conceptual hasta el modelo relacional con esta guía práctica con ejemplos (Spanish Edition)

SQL Server CONVERT: Guía Completa para Convertir Datos en SQL Server

¿Qué es y para que sirve la función CONVERT en SQL Server?

La función CONVERT en SQL Server es una función integrada que se utiliza para convertir una expresión de un tipo de dato a otro.

Esta función es muy versátil y ofrece un control adicional sobre la conversión de tipos de datos, especialmente cuando se trabaja con conversiones de fecha y hora, donde se pueden especificar estilos de formato.

El propósito principal de CONVERT es proporcionar una forma robusta y flexible de cambiar el tipo de dato de una expresión dentro de una consulta SQL, esto puede ser crucial cuando se preparan datos para informes, se realizan cálculos matemáticos, o se formatean datos para su presentación.

Sintaxis básica de la función CONVERT en SQL Server

CONVERT(tipo_de_dato, expresión, formato_style)

Donde:

  • tipo_de_dato: el tipo de datos al que se desea convertir la expresión.
  • expresión: la expresión que se desea convertir.
  • formato o style (opcional): un entero que representa el formato de salida cuando se convierte a tipos de datos de fecha y hora.

Diferencia entre CONVERT y CAST en SQL Server

SQL Server proporciona otra función para la conversión de tipos de datos llamada CAST, aunque ambas funciones tienen la misma finalidad, existen algunas diferencias clave entre ellas:

1 Sintaxis y Uso:

  • CAST: La sintaxis de CAST es más sencilla y se alinea con el estándar SQL ANSI.
  • No ofrece la capacidad de especificar estilos de formato para conversiones de fecha y hora.
CAST(expression AS data_type)
  • CONVERT: Ofrece una sintaxis más detallada y permite especificar un estilo de formato para conversiones de fecha y hora, lo que proporciona un control adicional sobre la salida.

2 Compatibilidad y Estándares

  • CAST: Es compatible con el estándar SQL ANSI, lo que lo hace más portátil entre diferentes sistemas de gestión de bases de datos que siguen el estándar.
  • CONVERT: Es específico de SQL Server y ofrece capacidades adicionales específicas de esta plataforma.

Aunque tanto CAST como CONVERT se utilizan para la conversión de tipos de datos en SQL Server, CONVERT ofrece una mayor flexibilidad, especialmente en el formateo de conversiones de fecha y hora, elegir entre CAST y CONVERT dependerá de las necesidades específicas de la conversión y del nivel de control requerido sobre el formato de los datos convertidos.

Tipos de datos soportados por CONVERT en SQL Server

La función CONVERT en SQL Server permite la conversión de una amplia variedad de tipos de datos, a continuación se presenta una lista de los tipos de datos más comunes que se pueden convertir utilizando CONVERT:

📌 Tipos de Datos Numéricos

  • INT (Entero)
  • BIGINT (Entero grande)
  • SMALLINT (Entero pequeño)
  • TINYINT (Entero muy pequeño)
  • DECIMAL o NUMERIC (Decimal o numérico)
  • FLOAT (Número de punto flotante)
  • REAL (Número de punto flotante más pequeño)
  • MONEY (Moneda)
  • SMALLMONEY (Moneda pequeña)

📌 Tipos de Datos de Carácter

  • CHAR (Carácter fijo)
  • VARCHAR (Carácter variable)
  • NCHAR (Carácter Unicode fijo)
  • NVARCHAR (Carácter Unicode variable)
  • TEXT (Texto de longitud variable)
  • NTEXT (Texto Unicode de longitud variable)

📌 Tipos de Datos de Fecha y Hora

  • DATE (Fecha)
  • TIME (Hora)
  • DATETIME (Fecha y hora combinadas)
  • SMALLDATETIME (Fecha y hora combinadas con menos precisión)
  • DATETIME2 (Fecha y hora combinadas con mayor precisión)
  • DATETIMEOFFSET (Fecha y hora combinadas con un desplazamiento de zona horaria)

📌 Tipos de Datos Binarios

  • BINARY (Binario fijo)
  • VARBINARY (Binario variable)
  • IMAGE (Datos binarios de longitud variable)

📌 Tipos de Datos de Identificadores Únicos

  • UNIQUEIDENTIFIER (Identificador único global o GUID)

📌 Otros Tipos de Datos

  • BIT (Booleano, 0 o 1)
  • SQL_VARIANT (Tipo de datos que puede almacenar varios tipos de datos)
  • XML (Datos XML)

Uso de estilos o formatos en CONVERT en SQL Server

El parámetro style en la función CONVERT en SQL Server se utiliza para especificar el formato de salida de los datos, especialmente cuando se convierte entre tipos de datos de fecha y hora y tipos de datos de cadena, por lo tanto, vamos a estudiar cómo este parámetro afecta la conversión y lo haremos a través de una tabla con los estilos más comunes para conversiones de fechas y horas, junto con ejemplos de cómo aplicarlos.

Tabla de Estilos Comunes para Conversiones de Fechas y Horas

La siguiente tabla enumera algunos de los estilos más comunes utilizados para convertir fechas y horas a cadenas de caracteres en SQL Server:

EstiloFormato de Fecha y HoraEjemplo de Salida
0Standard (default)Jan 1 2005 1:29PM
1MM/DD/YY02 / 20 / 24
2YY.MM.DD24.01.01
3DD/MM/YY25/02/24
4DD.MM.YY01.01.24
5DD-MM-YY01-01-24
10MM-DD-YY01-01-24
11YY/MM/DD24/01/01
20YYYY-MM-DD HH:MI:SS (24h)2024-01-01 13:29:00 
21YYYY-MM-DD HH:MI:SS.MMM (24h)2005-01-01 13:29:00.111
22MM/DD/YY HH:MI:SS (AM o PM)01/01/05 1:29:00 PM
23YYYY-MM-DD2024-01-01
101MM/DD/YYYY01/01/2024
102YYYY.MM.DD2024.01.01
103DD/MM/YYYY01/01/2024
104DD.MM.YYYY01.01.2024
105DD-MM-YYYY01-01-2024
110MM-DD-YYYY01-01-2024
111YYYY/MM/DD2024/01/01
112YYYYMMDD20240101
120YYYY-MM-DD HH:MI:SS (24h)2024-01-01 13:29:00
121YYYY-MM-DD HH:MI:SS.MMM (24h)2005-01-01 13:29:00.000

El uso del parámetro style en la función CONVERT de SQL Server es crucial para obtener el formato deseado al convertir datos de fecha y hora a cadenas de caracteres, la selección del estilo correcto puede mejorar significativamente la legibilidad y presentación de los datos en las aplicaciones y reportes, por lo tanto, conocer y utilizar adecuadamente estos estilos permite una mayor flexibilidad y precisión en la manipulación de datos de fecha y hora en SQL Server.

Ejemplos prácticos de uso de CONVERT en SQL Server

Ahora que ya conoces lo más importante de la función CONVERT en SQL Server, hagamos algunos ejemplos para que te quede claro el uso de esta función y puedas utilizarla en tus proyectos de una forma correcta.

En los siguientes ejemplos utilizaremos la clausula SELECT, así que te dejo el link a dicha clase en dado caso que no la hayas visto y no sepas como utilizar el SELECT:

CONVERT en SQL Server ejemplo 1: Convertir un número a una cadena de caracteres

SELECT CONVERT(VARCHAR, 12345) AS StringValue;
  • Cómo puedes ver no es necesario especificar un style o formato al transformar un número a VARCHAR.

CONVERT en SQL Server ejemplo 2:  Convertir una cadena a un tipo de dato decimal

SELECT CONVERT(DECIMAL(10, 2), '123.45') AS DecimalValue;

CONVERT en SQL Server ejemplo 3: Convertir una cadena a un identificador único

SELECT CONVERT(UNIQUEIDENTIFIER, '6F9619FF-8B86-D011-B42D-00C04FC964FF') AS Id;

CONVERT en SQL Server ejemplo 4: Convertir datos en hexadecimal a una cadena

SELECT CONVERT(VARCHAR, 0x53514C20536572766572) AS HexString;

CONVERT en SQL Server ejemplo 5: Convertir una fecha a formato MM/DD/YYYY

SELECT CONVERT(VARCHAR, GETDATE(), 101) AS FormattedDate;

CONVERT en SQL Server ejemplo 6: Convertir una fecha a formato MM-DD-YY

SELECT CONVERT(VARCHAR, GETDATE(), 10) AS FormattedDate;
  • Si deseas probar mas formatos para fechas, solo reemplaza el style con el número de estilo que te deje en la tabla anterior.

CONVERT en SQL Server ejemplo 7: Convertir el tipo de dato de columnas de una tabla

Podemos utilizar CONVERT en SQL Server dentro de nuestras consultas para convertir el tipo de dato de una columna en otros o darle formato a un fecha, por ejemplo:

 select 
	 CONVERT(BIGINT,imei) as 'imei'
	,rfc
	,CONVERT(BIGINT,celular) as 'celular'
	,sim
	,estatus
	,CONVERT(varchar,fecha,10) as 'fecha'
from equipos_gps
  • Recuerda que la tabla “equipos_gps” es la tabla que hemos manejado durante todo este curso, revisa las clases anteriores para que aprendas a crearla.
  • En nuestro SELECT de ejemplo tenemos varios CONVERT y lo hacemos sólo a modo de ejemplo, convertimos VARCHAR A BIGINT y damos un formato a nuestra fecha.

Ahora ya puedes utilizar CONVERT en tus proyectos y retornar los tipos de datos que necesites.

Manejo de errores en la conversión de tipos de datos con CONVERT en SQL Server

Como programadores el manejo de errores es vital, ya que, le da calidad a nuestras aplicaciones, evitando que los usuarios tengan una mala experiencia con el software que desarrollemos, es por ello, que a continuación revisaremos algunos ejemplos de como puedes manejar los errores durante la conversión de datos.

Ejemplo de uso de TRY_CONVERT

La función TRY_CONVERT es una alternativa a CONVERT que devuelve NULL en lugar de lanzar un error si la conversión falla, esto permite manejar conversiones potencialmente problemáticas de manera segura, por ejemplo:

SELECT TRY_CONVERT(INT, '123abc') AS SafeConversion; -- Resultado: NULL
  • Si ejecutamos la línea anterior, SQL Server no lanzaría un error, si no que nuestra consulta simplemente regresa un valor NULO (Tenemos una clase completa para el manejo de valores nulos, te dejo el link para que la revises si tienes dudas: IS NULL en SQL Server: Comprendiendo la Verificación de Valores Nulos e IS NOT NULL)
  • Ahora, si TRY_CONVERT nos regresa un nulo, es una buena practica ahora manejar ese valor nulo y en una clase pasada te enseñe a usar COALESCE, así que aplicaremos esta función aquí para controlar este resultado, así que nuestra consulta se vería de la siguiente manera.
SELECT COALESCE(TRY_CONVERT(INT, '123abc'), 0) AS SafeConversionWithDefault; -- Resultado: 0
  • Ahora, ya hemos realizado una conversión segura a través de TRY_CONVERT, y si falla nuestra conversión, estamos preparados para manejar el valor nulo a través de COALESCE, así que has hecho un gran trabajo.

Validación de Datos Antes de la Conversión

Validar los datos de entrada antes de intentar una conversión puede prevenir errores, puedes utilizar funciones como ISNUMERIC, ISDATE, etc., para verificar que los datos sean del tipo esperado, por ejemplo:

DECLARE @StringValue VARCHAR(10) = '12345';
IF ISNUMERIC(@StringValue) = 1
BEGIN
    SELECT CONVERT(INT, @StringValue) AS IntegerValue;
END
ELSE
BEGIN
    SELECT 'El valor no es valido';
END

DECLARE @DateValue VARCHAR(11) = '2024-01-01';
IF ISDATE(@DateValue) = 1
BEGIN
    SELECT CONVERT(Date, @DateValue) AS DateValue;
END
ELSE
BEGIN
    SELECT 'El valor no es valido';
END

Existen algunas otras estrategias que puedes implementar para el control de errores en la conversión de datos, pero, dado que estas aprendiendo, puedes empezar con las dos anteriores e ir avanzando en tu aprendizaje, no obstante, simplemente te menciono algunas otras opciones, para cuando seas un experto las implementes por ti mismo:

  • Validación de tipos de datos desde la aplicación: realiza la validación de los datos en el nivel de la aplicación antes de enviarlos a la base de datos, esto garantiza que solo los datos válidos lleguen a SQL Server.
  • Implementación de validaciones en el diseño de la base de datos: utiliza restricciones y reglas de validación en el diseño de la base de datos para garantizar la integridad de los datos, por ejemplo, utilizando restricciones de tipo de datos en las columnas.
  • Manejo de excepciones en procedimientos almacenados: utiliza bloques BEGIN TRY...END TRY y BEGIN CATCH...END CATCH para manejar excepciones durante la conversión en procedimientos almacenados.

 

Para finalizar con esta clase de SQL Server CONVERT, te dejo un resumen de los puntos más importantes que debes considerar durante la conversión de datos para que te veas como todo un experto en el tema:

  • La función CONVERT es esencial para la conversión de tipos de datos en SQL Server, ofreciendo capacidades adicionales sobre CAST, especialmente con estilos de formato.
  • Conocer y utilizar adecuadamente la sintaxis de CONVERT, así como los tipos de datos y estilos soportados, permite realizar conversiones precisas y eficientes.
  • La validación previa de datos y el manejo adecuado de errores son cruciales para evitar problemas durante las conversiones.
  • Aplicar mejores prácticas y estrategias de manejo de errores asegura que las conversiones sean seguras, predecibles y no afecten negativamente el rendimiento de las consultas.

Excelente, has llegado al final de esta clase, recuerda que puedes mandarme un correo con las dudas que tengas de cualquier clase de nuestros cursos gratuitos, sólo intenta que tu pregunta sea lo mas concreta para que pueda ayudarte mejor.

Juan Carlos

Juan Carlos García

Desarrollador de software / SEO

Durante años he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera página de Google, y hoy quiero compartir contigo lo que se en tecnologías como: Node JS, PHP, C# y Bases de datos.

Si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.

EWebik

Diseño de páginas web y aplicaciones moviles.

© 2024 EWebik