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 # Query Formato Resultados
1 select convert(varchar, getdate(), 1) mm/dd/yy 12/30/22
2 select convert(varchar, getdate(), 2) yy.mm.dd 22.12.30
3 select convert(varchar, getdate(), 3) dd/mm/yy 30/12/22
4 select convert(varchar, getdate(), 4) dd.mm.yy 30.12.22
5 select convert(varchar, getdate(), 5) dd-mm-yy 30-12-22
6 select convert(varchar, getdate(), 6) dd-Mon-yy 30 Dec 22
7 select convert(varchar, getdate(), 7) Mon dd, yy Dec 30, 22
10 select convert(varchar, getdate(), 10) mm-dd-yy 12-30-22
11 select convert(varchar, getdate(), 11) yy/mm/dd 22/12/30
12 select convert(varchar, getdate(), 12) yymmdd 221230
23 select convert(varchar, getdate(), 23) yyyy-mm-dd 2022-12-30
31 select convert(varchar, getdate(), 31) yyyy-dd-mm 2022-30-12
32 select convert(varchar, getdate(), 32) mm-dd-yyyy 12-30-2022
33 select convert(varchar, getdate(), 33) mm-yyyy-dd 12-2022-30
34 select convert(varchar, getdate(), 34) dd-mm-yyyy 30-12-2022
35 select convert(varchar, getdate(), 35) dd-yyyy-mm 30-2022-12
101 select convert(varchar, getdate(), 101) mm/dd/yyyy 12/30/2022
102 select convert(varchar, getdate(), 102) yyyy.mm.dd 2022.12.30
103 select convert(varchar, getdate(), 103) dd/mm/yyyy 30/12/2022
104 select convert(varchar, getdate(), 104) dd.mm.yyyy 30.12.2022
105 select convert(varchar, getdate(), 105) dd-mm-yyyy 30-12-2022
106 select convert(varchar, getdate(), 106) dd Mon yyyy 30 Dec 2022
107 select convert(varchar, getdate(), 107) Mon dd, yyyy Dec 30, 2022
110 select convert(varchar, getdate(), 110) mm-dd-yyyy 12-30-2022
111 select convert(varchar, getdate(), 111) yyyy/mm/dd 2022/12/30
112 select convert(varchar, getdate(), 112) yyyymmdd 20221230
FORMATO DE TIEMPO
8 select convert(varchar, getdate(), 8) hh:mm:ss 00:38:54
14 select convert(varchar, getdate(), 14) hh:mm:ss:nnn 00:38:54:840
24 select convert(varchar, getdate(), 24) hh:mm:ss 00:38:54
108 select convert(varchar, getdate(), 108) hh:mm:ss 00:38:54
114 select convert(varchar, getdate(), 114) hh:mm:ss:nnn 00:38:54:840
FORMATO DE FECHA Y HORA
0 select convert(varchar, getdate(), 0) Mon dd yyyy hh:mm AM/PM Dec 30 2022 12:38AM
9 select convert(varchar, getdate(), 9) Mon dd yyyy hh:mm:ss:nnn AM/PM Dec 30 2022 12:38:54:840AM
13 select convert(varchar, getdate(), 13) dd Mon yyyy hh:mm:ss:nnn AM/PM 30 Dec 2022 00:38:54:840AM
20 select convert(varchar, getdate(), 20) yyyy-mm-dd hh:mm:ss 2022-12-30 00:38:54
21 select convert(varchar, getdate(), 21) yyyy-mm-dd hh:mm:ss:nnn 2022-12-30 00:38:54.840
22 select convert(varchar, getdate(), 22) mm/dd/yy hh:mm:ss AM/PM 12/30/22 12:38:54 AM
25 select convert(varchar, getdate(), 25) yyyy-mm-dd hh:mm:ss:nnn 2022-12-30 00:38:54.840
26 select convert(varchar, getdate(), 26) yyyy-dd-mm hh:mm:ss:nnn 2022-30-12 00:38:54.840
27 select convert(varchar, getdate(), 27) mm-dd-yyyy hh:mm:ss:nnn 12-30-2022 00:38:54.840
28 select convert(varchar, getdate(), 28) mm-yyyy-dd hh:mm:ss:nnn 12-2022-30 00:38:54.840
29 select convert(varchar, getdate(), 29) dd-mm-yyyy hh:mm:ss:nnn 30-12-2022 00:38:54.840
30 select convert(varchar, getdate(), 30) dd-yyyy-mm hh:mm:ss:nnn 30-2022-12 00:38:54.840
100 select convert(varchar, getdate(), 100) Mon dd yyyy hh:mm AM/PM Dec 30 2022 12:38AM
109 select convert(varchar, getdate(), 109) Mon dd yyyy hh:mm:ss:nnn AM/PM Dec 30 2022 12:38:54:840AM
113 select convert(varchar, getdate(), 113) dd Mon yyyy hh:mm:ss:nnn 30 Dec 2022 00:38:54:840
120 select convert(varchar, getdate(), 120) yyyy-mm-dd hh:mm:ss 2022-12-30 00:38:54
121 select convert(varchar, getdate(), 121) yyyy-mm-dd hh:mm:ss:nnn 2022-12-30 00:38:54.840
126 select convert(varchar, getdate(), 126) yyyy-mm-dd T hh:mm:ss:nnn 2022-12-30T00:38:54.840
127 select convert(varchar, getdate(), 127) yyyy-mm-dd T hh:mm:ss:nnn 2022-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