SQL CONVERT: Función

La función SQL CONVERT es una función del sistema T-SQL que se utiliza para convertir una columna de una tipología de datos a otro. Como parte de su sintaxis, especifica un estilo para usar en la conversión, lo que la convierte en una función de conversión muy segura.

La sintaxis de la función SQL CONVERT 

La función SQL CONVERT es muy simple. Sigue este patrón:

CONVERT(<tipo de datos de destino>, 
<columna o expresión>, [<optional estilo >])

Analicemos cada parte de la sintaxis de SQL CONVERT:

  • Su primer argumento es el tipo de datos de destino al que desea que se convierta su columna o expresión.
  • El segundo argumento es su columna o expresión que desea convertir «sobre la marcha»
  • El último argumento opcional es el estilo que desea utilizar para la conversión. Es simplemente un número. Veremos qué números podemos elegir pronto.

Los argumentos están separados por coma y en paréntesis.

Ejemplo de la función SQL Convert 

El comando SQL Convertir de Transacciones SQL (T-SQL) se puede usar para convertir datos entre diferentes tipos. Al convertir un valor SQL DATETIME en un valor de cadena VarChar, se puede aplicar un código de estilo. Necesitamos ver algunos ejemplos especialmente con respecto al argumento de estilo.

SQL convert

utilizamos la función Getdate, para devolver la fecha actual y usarla como argumento en el ejemplo.

Tabla con código de estilo y Query

La siguiente tabla describe los códigos de estilo más populares que están disponibles para usar la función SQL convert entre una representación SQL datetime de fecha y hora y una de caracteres.

FORMATO DE FECHA
Formato #QueryFormatoResultados
1select convert(varchar, getdate(), 1)mm/dd/yy12/30/22
2select convert(varchar, getdate(), 2)yy.mm.dd22.12.30
3select convert(varchar, getdate(), 3)dd/mm/yy30/12/22
4select convert(varchar, getdate(), 4)dd.mm.yy30.12.22
5select convert(varchar, getdate(), 5)dd-mm-yy30-12-22
6select convert(varchar, getdate(), 6)dd-Mon-yy30 Dec 22
7select convert(varchar, getdate(), 7)Mon dd, yyDec 30, 22
10select convert(varchar, getdate(), 10)mm-dd-yy12-30-22
11select convert(varchar, getdate(), 11)yy/mm/dd22/12/30
12select convert(varchar, getdate(), 12)yymmdd221230
23select convert(varchar, getdate(), 23)yyyy-mm-dd2022-12-30
31select convert(varchar, getdate(), 31)yyyy-dd-mm2022-30-12
32select convert(varchar, getdate(), 32)mm-dd-yyyy12-30-2022
33select convert(varchar, getdate(), 33)mm-yyyy-dd12-2022-30
34select convert(varchar, getdate(), 34)dd-mm-yyyy30-12-2022
35select convert(varchar, getdate(), 35)dd-yyyy-mm30-2022-12
101select convert(varchar, getdate(), 101)mm/dd/yyyy12/30/2022
102select convert(varchar, getdate(), 102)yyyy.mm.dd2022.12.30
103select convert(varchar, getdate(), 103)dd/mm/yyyy30/12/2022
104select convert(varchar, getdate(), 104)dd.mm.yyyy30.12.2022
105select convert(varchar, getdate(), 105)dd-mm-yyyy30-12-2022
106select convert(varchar, getdate(), 106)dd Mon yyyy30 Dec 2022
107select convert(varchar, getdate(), 107)Mon dd, yyyyDec 30, 2022
110select convert(varchar, getdate(), 110)mm-dd-yyyy12-30-2022
111select convert(varchar, getdate(), 111)yyyy/mm/dd2022/12/30
112select convert(varchar, getdate(), 112)yyyymmdd20221230
FORMATO DE TIEMPO
8select convert(varchar, getdate(), 8)hh:mm:ss00:38:54
14select convert(varchar, getdate(), 14)hh:mm:ss:nnn00:38:54:840
24select convert(varchar, getdate(), 24)hh:mm:ss00:38:54
108select convert(varchar, getdate(), 108)hh:mm:ss00:38:54
114select convert(varchar, getdate(), 114)hh:mm:ss:nnn00:38:54:840
FORMATO DE FECHA Y HORA
0select convert(varchar, getdate(), 0)Mon dd yyyy hh:mm AM/PMDec 30 2022 12:38AM
9select convert(varchar, getdate(), 9)Mon dd yyyy hh:mm:ss:nnn AM/PMDec 30 2022 12:38:54:840AM
13select convert(varchar, getdate(), 13)dd Mon yyyy hh:mm:ss:nnn AM/PM30 Dec 2022 00:38:54:840AM
20select convert(varchar, getdate(), 20)yyyy-mm-dd hh:mm:ss2022-12-30 00:38:54
21select convert(varchar, getdate(), 21)yyyy-mm-dd hh:mm:ss:nnn2022-12-30 00:38:54.840
22select convert(varchar, getdate(), 22)mm/dd/yy hh:mm:ss AM/PM12/30/22 12:38:54 AM
25select convert(varchar, getdate(), 25)yyyy-mm-dd hh:mm:ss:nnn2022-12-30 00:38:54.840
26select convert(varchar, getdate(), 26)yyyy-dd-mm hh:mm:ss:nnn2022-30-12 00:38:54.840
27select convert(varchar, getdate(), 27)mm-dd-yyyy hh:mm:ss:nnn12-30-2022 00:38:54.840
28select convert(varchar, getdate(), 28)mm-yyyy-dd hh:mm:ss:nnn12-2022-30 00:38:54.840
29select convert(varchar, getdate(), 29)dd-mm-yyyy hh:mm:ss:nnn30-12-2022 00:38:54.840
30select convert(varchar, getdate(), 30)dd-yyyy-mm hh:mm:ss:nnn30-2022-12 00:38:54.840
100select convert(varchar, getdate(), 100)Mon dd yyyy hh:mm AM/PMDec 30 2022 12:38AM
109select convert(varchar, getdate(), 109)Mon dd yyyy hh:mm:ss:nnn AM/PMDec 30 2022 12:38:54:840AM
113select convert(varchar, getdate(), 113)dd Mon yyyy hh:mm:ss:nnn30 Dec 2022 00:38:54:840
120select convert(varchar, getdate(), 120)yyyy-mm-dd hh:mm:ss2022-12-30 00:38:54
121select convert(varchar, getdate(), 121)yyyy-mm-dd hh:mm:ss:nnn2022-12-30 00:38:54.840
126select convert(varchar, getdate(), 126)yyyy-mm-dd T hh:mm:ss:nnn2022-12-30T00:38:54.840
127select convert(varchar, getdate(), 127)yyyy-mm-dd T hh:mm:ss:nnn2022-12-30T00:38:54.840

En las tablas anteriores usamos SQL convert para trabajar con fecha y hora, por lo que en adelante podrás ver   ejemplos con números.

Ejemplo convertir número a formato de texto SQL convert

Convertir un número entero en una cadena, es muy simple de hacer con la función SQL CONVERT:

SELECT CONVERT(varchar, 23.7);
–Resultado: ‘23.7’

SELECT CONVERT(varchar(4), 23.7);
–Resultado: ‘23.7’

El valor que retorna es un formato de datos VARCHAR:

Ejemplo de sql convert con número entero a decimal

para convertir un numero entero a deicimal usemos sql CONVERT, sin usar el argumento de estilo opcional, Ejemplos:

SELECT CONVERT(DECIMAL(12),12 ) AS Resultado;
--Resultado: 12.00

El resultado es 12.00 . Los dos especio ocupado por cero después del punto indica el formato decimal

También podemos obtener decimales a través de tipo de datos float

SELECT CONVERT(float, '52.4');
--Resultado: '52.4'

SELECT CONVERT(float, 15.49);
--Resultado: 15.49

si queremos número entero sin decimal

SELECT CONVERT(int, 15.49);
--Resultado: 15

La comparación entre la función CAST y CONVERT

La función CAST  puede convertir valores sobre la marcha, pero no le permite especificar un estilo al realizar la conversión.

Además, aquí hay un enlace a la documentación oficial de Microsoft sobre el tema de las funciones de conversión. En esta página, encontrará enlaces a las funciones CONVERT y CAST , así como a las variaciones » TRY_ » de cada una: Funciones de conversión (Transact-SQL)

Deja un comentario