Este artículo explica el uso de la función de formato SQL y la comparación de rendimiento con SQL CONVERT.
Introducción
en el artículo SQL Convert Date functions and formats, discutimos el uso de la función SQL CONVERT para convertir la fecha y la hora en múltiples formatos. Tenemos una nueva función, formato SQL, de SQL Server 2012.
utilizamos esta nueva función para obtener la salida en un formato y Cultura especificados. Devuelve un tipo de datos NVARCHAR en la salida.,
sintaxis de la función de formato SQL
formato (valor, formato)
Tiene los siguientes parámetros:
- Valor: es el valor para hacer el formato. Debe ser compatible con el formato de tipo de datos. Puede consultar la documentación de Microsoft para obtener una lista de los tipos de datos compatibles y su formato de tipo de datos equivalente
- : Es el formato requerido en el que requerimos la salida. Este parámetro debe contener una cadena de formato. NET válida en el tipo de datos NVARCHAR. Podemos referirnos a los tipos de formato en .,NET para más detalles
- Cultura: es un parámetro opcional. De forma predeterminada, SQL Server utiliza el lenguaje de sesión actual para una cultura predeterminada. Podemos proporcionar una cultura específica aquí, pero.Net framework debería apoyarla., We get an error message in case of invalid Culture
We use the following SQL CONVERT function to get output in format:
1
|
SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS
|
As we know, we require format code in SQL Convert function for converting output in a specific format.,
no requerimos código de formato en la función de formato SQL. Veamos varios ejemplos de la función FORMAT:
SQL Format Date usando Culture
en la sección anterior, no usamos el argumento culture. Como sabes, es un argumento opcional, así que vamos a ver qué diferencia hace si lo especificamos en una consulta.
en la siguiente consulta, vemos el formato de fecha usando el argumento d para diferentes culturas. Puede consultar la tabla para ver los códigos de cultivo.,
del mismo modo, si cambiamos el formato de d A f en la consulta anterior, da la siguiente salida:
SQL Format Currency using Culture
También podemos formatear currency usando esta función. Supongamos que administra un portal de compras en línea donde los clientes de un país diferente vienen a comprar. Desea mostrar los precios de los productos en su moneda., En la siguiente consulta, utilizamos la función FORMAT para mostrar los precios con un símbolo de moneda:
formato de Número usando la función FORMAT
escape de dos puntos y puntos en la función de formato SQL
debemos evitar dos puntos y y también se adhiere a las reglas CLR de.net. Podemos usar dos puntos y punto como segundo parámetro, y el primer parámetro debe ser una barra invertida., En el siguiente ejemplo, veamos que la segunda instrucción format omite los dos puntos en el tiempo especificado:
comparación de rendimiento del formato SQL y la función SQL CONVERT
exploramos los casos de uso de la función FORMAT. Podría pensar que deberíamos dejar de usar la función SQL CONVERT y comenzar a usar el formato SQL. Espera! Vamos a hacer una comparación de ambos SQL FORMAT y SQL CONVERT.,v>
Query4: Select all records from TestPerfomance order by ID column and use FORMAT function for the InputTime column:
1
2
3
4
|
SELECT FORMAT(InputTime, ‘yyyy-MM-dd’)
FROM TestPerformance
ORDER BY id;
GO 10
|
We can use DMV sys.,dm_exec_query_stats y sys. dm_exec_sql_text para obtener los datos de comparación de rendimiento de las sentencias select que ejecutamos anteriormente.
se obtiene el siguiente resultado de la DMV:
Para entenderlo mejor, vamos a ver estos datos en un gráfico:
Mira el gráfico de la consulta 2, 3 y 4.,
- obtenemos un alto tiempo transcurrido para la consulta que utiliza la función de formato SQL
- Las consultas que utilizan la función CONVERT tienen un mejor rendimiento en comparación con la función de formato
- También vemos total_clr_time para la consulta con la función de formato mientras que es cero para las consultas de función CONVERT porque la función de formato utiliza.Net CLR runtime
Conclusion
la función de formato SQL es útil para convertir las fechas, Hora, Número, moneda en un formato especificado. Debemos usarlo cuando requerimos cambios de configuración regional solo porque podría causar problemas de rendimiento., Deberíamos usar la función SQL CONVERT para todos los demás casos. Si planea usarlo en producción, le recomendaría hacer una prueba de rendimiento exhaustiva para su carga de trabajo.,
- Autor
- publicaciones recientes
ver todas las publicaciones de Rajendra Gupta
- tiempos de espera de sesión en grupos de disponibilidad Always On de SQL Server – 8 de febrero de 2021
- actualizaciones de versiones menores y mayores para AWS RDS SQL Server – 29 de enero de 2021
- implementación de instancias de AWS RDS PostgreSQL – 27 de enero de 2021
Deja una respuesta