SQLShack (Español)

publicado en: Articles | 0

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
    como formador certificado por MCSA y Microsoft Certified en Gurgaon, India, con 13 años de experiencia, Rajendra trabaja para una variedad de grandes empresas que se centran en la optimización del rendimiento, el monitoreo, la alta disponibilidad y las estrategias e implementación de recuperación ante desastres., Es autor de cientos de artículos autorizados sobre SQL Server, Azure, MySQL, Linux, Power BI, performance tuning, AWS/Amazon RDS, Git y tecnologías relacionadas que han sido vistos por más de 10 millones de lectores hasta la fecha. es el creador de una de las mayores colecciones gratuitas en línea de artículos sobre un solo tema, con su serie de 50 partes en grupos SQL Server Always on Availability. Basado en su contribución a la comunidad de SQL Server, ha sido reconocido con varios premios incluyendo el prestigioso «mejor autor del año» continuamente en 2020 y 2021 en SQLShack.,Raj siempre está interesado en nuevos desafíos, por lo que si necesita ayuda de consultoría sobre cualquier tema cubierto en sus escritos, puede ser contactado en rajendra.gupta16 @ gmail.,com
    ver todas las publicaciones de Rajendra Gupta

    últimas publicaciones de Rajendra Gupta (ver todas)
    • 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

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *