Las fechas son esenciales en la mayoría de las aplicaciones. A veces, necesitamos mostrar una fecha en el formato correcto para nuestro usuario. Por ejemplo, si estamos mostrando la fecha en el formato «Año-Mes-Día», quizás el usuario quiera verlo en «Día-Año-Mes». En este artículo, vamos a aprender cómo usar la función CONVERT() en SQL Server para convertir una DateTime a diferentes formatos.
Índice
Situación
Al trabajar en reportes de empresas microsoft sql server nos facilita la vida puesto que nos permite con la funcion convert aplicar formatos algo que no podemos hacer con la funcion del standard de sql cast. Por lo cual en esta ocacion te presentamos una situacion muy comun dentro de los desarrollos programas en el lenguaje que prefieras o en el diseño reportes en general que utilzan sql server 2016 como sgbd.
Hay muchos casos en los que las fechas y las horas no aparecen en en el formato que requiere el usuario, ni el resultado de una consulta se ajusta a las necesidades. Una opción es formatear los datos desde el software(aplicando alguna ajuste). Otra opción es utilizar las función Convert() de SQL Server para formatear la cadena de fecha por usted.

Sacar una copia de datos o backup e...
Sacar una copia de datos o backup en MySQL con Workbench y restaurarla (1)
Tipos de datos y funciones de fecha y hora (Transact-SQL)
Transact-SQL utiliza la fecha y hora del sistema operativo del servidor o pc donde se encuentra instalada la instancia de SQL Server. En la version de SQL Server 2019 (15.x) o 2022 deriva los valores mediante la API de GetSystemTimeAsFileTime.
Lista de tipos de datos
- Time
- Date
- smalldatetime
- datetime
- datetime2
- datetimeoffset
Todos estos tipos de datos varian en formato y presicion por lo cual es importante contar con una funcion que te permita convertir las fechas al formato adecuado. De esta forma podemos formatear un fecha sin hora en sql server.
Requerimiento SQL Server Management Studio
Es importante recordar que la herramienta impresindible para ejecutar estos ejemplos es el SQL Server Management Studio pero en caso de podras ejecutar los comando Tsql en otra GUI que permita la conexion a la instancia de sql server, como es Heidisql la cual es una herramienta muy flexible para trabajar con sql server.
Ver mas
Errores al convertir fechas
Normalmente trabajar con fechas en cualquier sistema de gestion de base de datos como pasa es importante tomar encuenta cual es el fomato requerido o la region para en mysql convertir fechas relativamente mas facil que en microsoft sql server puesto que puedes manipular las variables.
para solucionar cualquier problema con la conversion de fechas con el comando convert en este articulo encontraras el formato necesario. debemos recordar que el valor para convertir debe ser de un tipo de datos fecha esto es asi para mysql y sql server. Pero si toca tambien es lo mismo para power BI.
Cómo formatear fecha en SQL Server con la función CONVERT()?
La función CONVERT() se usa para convertir un valor de un tipo de datos a otro. También podemos usarla para formatear la fecha y hora. A continuación, se muestra el sintaxis general de la función CONVERT().
CONVERT (data_type [length], expression, style)
En la sintaxis anterior, el data_type es el tipo de datos al que queremos convertir. La longitud es opcional y se usa solo si estamos convirtiendo a un tipo de caracteres. La expresión es el valor que se va a convertir. El style es opcional y se usa para indicar el formato de salida de la fecha/hora.
Comando para filtrar o convertir fechas

Cómo Convertir fecha en mysql
Ver mas

Convertir fecha con formato en Postgresql
Ver mas

Where o between para sacar fechas sql
Ver mas

Aplicar Formato de moneda en las columnas
Ver mas
Ejemplos prácticos de uso de la función CONVERT()
Ahora, vamos a ver algunos ejemplos de uso de la función CONVERT().
Ejemplo #01 –sql fecha formato dd/mm/yyyy
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: sql fecha formato dd/mm/yyyy al ejecutar esta consulta generamos la fecha sin hora en sql server.
SELECT CONVERT(VARCHAR, GETDATE(), 103) AS [DD/MM/YYYY];
Ejemplo #02 – Convertir DateTime en formato mm-dd-yyyy
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: mm-dd-yyyy.
SELECT CONVERT(VARCHAR, GETDATE(), 101) AS [MM-DD-YYYY];
Ejemplo #03 – Convertir DateTime en formato yyyy/mm/dd
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: yyyy/mm/dd. al igual que en los ejemplos anteriores eliminamos la hora de la fecha para tener una fecha en el formato indicado.
SELECT CONVERT(VARCHAR, GETDATE(), 111) AS [YYYY/MM/DD];
Ejemplo #04 – Convertir DateTime en formato dd MMMM, yyyy
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: dd MMMM, yyyy.
SELECT CONVERT(VARCHAR, GETDATE(), 106) AS [DD Month YYYY];
Ejemplo #05 – Convertir DateTime en formato HH:mm tt
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: HH:mm tt.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 100) AS [HH:MM AM/PM];
«`
Ejemplo #06 – Convertir DateTime en formato HH:mm:ss.fff tt
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: HH:mm:ss.fff tt.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 108) AS [HH:MM:SS AM/PM];
«`
Ejemplo #07 – Convertir DateTime en formato dddd, dd MMMM yyyy
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: dddd, dd MMMM yyyy.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 113) AS [DDDD, DD Month YYYY];
«`
Ejemplo #08 – Convertir DateTime en formato dddd HH:mm tt
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: dddd HH:mm tt.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 114) AS [DDDD HH:MM AM/PM];
«`
Ejemplo #09 – Convertir DateTime en formato yyyy-mm-dd hh:mm:ss.fff
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: yyyy-mm-dd hh:mm:ss.fff.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 120) AS [YYYY-MM-DD HH:MM:SS.FFF];
«`
Ejemplo #010 – Convertir DateTime en formato dd/mm/yy hh:mm
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: dd/mm/yy hh:mm.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 102) AS [DD/MM/YY HH:MM];
«`
Ejemplo #011 – Convertir DateTime en formato mm-dd-yy hh:mi
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: mm-dd-yy hh:mi.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 104) AS [MM-DD-YY HH:MI];
«`
Ejemplo #012 – Convertir DateTime en formato hh:mm tt mm/dd/yy
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: hh:mm tt mm/dd/yy.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 105) AS [HH:MM AM/PM MM/DD/YY];
«
Ejemplo #013 – Convertir DateTime en formato hh:mm tt dd/mm/yy
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: hh:mm tt dd/mm/yy.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 107) AS [HH:MM AM/PM DD/MM/YY]
«
Ejemplo #014 – Convertir DateTime en formato mmddyyhhmi
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: mmddyyhhmi.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 112) AS [MMDDYYHHMI];
«`
Ejemplo #015 – Convertir DateTime en formato dd-mmm-yy hh:mi
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: dd-mmm-yy hh:mi.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 109) AS [DD-MMM-YY HH:MI];
«`
Ejemplo #016 – Convertir DateTime en formato dddd mm/dd/yy hh:mm tt
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: dddd mm/dd/yy hh:mm tt.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 103) AS [DDDD MM/DD/YY HH:MM AM/PM];
«`
Ejemplo #017 – Convertir DateTime en formato dddd dd-mmm-yy hh:mm tt
En este ejemplo, convertiremos una fecha y hora en el siguiente formato: dddd dd-mmm-yy hh:mm tt.
«`
SELECT CONVERT(VARCHAR, GETDATE(), 110) AS [DDDD DD-MMM-YY HH:MM AM/PM];
«`
¿Cuándo conviene usar la función CONVERT() para formatear fecha en SQL Server?
En general, la función CONVERT() es una buena opción cuando necesitamos formatear una fecha en SQL Server. Sin embargo, debemos tener en cuenta que esta función puede afectar el rendimiento de nuestras consultas si no se usa correctamente.
Por ejemplo, si tenemos una tabla con millones de registros y necesitamos convertir la columna fecha en el formato dd/mm/yyyy, podría ser mejor crear una nueva columna con el valor formateado en lugar de usar CONVERT() en la consulta. De esta forma, evitaremos tener que convertir los datos cada vez que hagamos una consulta y mejoraremos el rendimiento de nuestras consultas.
Funcion Format vs convert de sql server para fechas
A partir de SQL Server 2012 , se incluye una función para convertir fechas y dar formato que es similar a la función to_date postgresql . La función Convert de SQL Server tiene poca flexibilidad para manejar los cambios y dar formato por lo cual microsoft escucho a sus usuarios e incluyo una funcion que te permite trabajar con las fechas y manipular su formato.
La función FORMAT debe utilizarse con los tipos siguientes tipos de datos de fecha y hora de una columna de fecha (tipo de datos date, datetime, datetime2, smalldatetime, datetimeoffset, etc.)
Con la función FORMATO de SQL Server, no necesitamos saber el número de formato a usar para obtener el formato de fecha correcto como vimos al principio del articulo.
Sintaxis formato fecha regional
SELECT FORMAT (conlumna tipo fecha, ‘Formato fecha’, ‘region’) as date
Como poemos visualizar podremos hacer formatear la fecha segun la region que nos encontremos siempreque conoscas el codigo de la region ver debajo listado de regiones mas comunes para utilizar con la funcion format apartir de la version de sql server 2012 en adelante.
En los siguiente ejemplo podremos convertir las fechas segun la region determinada usando el las culture mas comunes con la funcion format sql server:
- SELECT FORMAT (getdate(), ‘d’, ‘en-US’) as date
- SELECT FORMAT (getdate(), ‘d’, ‘fr-FR’) as date
- SELECT FORMAT (getdate(), ‘d’, ‘bs-Latn-BA’) as date
- SELECT FORMAT (getdate(), ‘d’, ‘bs-Latn-BA’) as date
- SELECT FORMAT (getdate(), ‘d’, ‘zh-CN’) as date
- SELECT FORMAT (getdate(), ‘d’, ‘es-ES’) as date
Sintaxis formato fecha con variables
SELECT FORMAT (getdate(), 'dd-MM-yy') as datePodemos ver la funcion format es distinta a la funcion convert en esta utilizamos valiriables las cuales estan
Podemos ver la funcion format es distinta a la funcion convert en esta utilizamos variables las mismas estan bien definida
- dd – numero del dia 01-31
- MM – numero de meses 01-12
- yy – año con dos digitos
If this was run for March 21, 2021 the output would be:21-03-21, cuando usamos Format podemos generar una fecha sin hora en sql server pero tambien sacar solo la hora de una fecha como podemos ver en el siguiente ejemplo.
Sintaxis extraer hora de la fecha
SELECT FORMAT (getdate(), 'hh:mm:ss') as timeGO
Variable mas utilizadas
- hh – hora 01-12
- mm – minutos 00-59
- ss – segundos 00-59
Ejemplos mas comunes para formato las fechas y horasSELECT FORMAT (getdate(), ‘yyyy-MM-dd hh:mm:ss tt’) as date 2021-03-21 11:36:14 AM SELECT FORMAT (getdate(), ‘yyyy.MM.dd hh:mm:ss t’) as date 2021.03.21 11:36:14 A SELECT FORMAT (getdate(), ‘dddd, MMMM, yyyy’,’es-es’) as date –Spanish domingo, marzo, 2021
Decargar Script de ejemplos
Descarga estos ejemplos para convertir numero a formato de fecnas o para dar el formato de Poner formato de moneda en SQL Server.
Descargar
Otras funciones de cadena importantes
01 Funciones SQL para Manejar Cadenas de Caracteres
02 Funcion substring en sql con ejemplos
Conclusión
En resumen, la función CONVERT() puede ser muy útil para formatear fecha en SQL Server, pero debemos tener cuidado al usarla para no afectar el rendimiento de nuestras consultas.
Hasta la próxima entrada!!
Bye :D!!
FAQs
What does convert function do in SQL Server? ›
The CONVERT() function converts a value (of any type) into a specified datatype.
How to change date format from dd mm yyyy to yyyy-mm-dd in SQL Server? ›- Use the SELECT statement with CONVERT function and date format option for the date values needed.
- To get YYYY-MM-DD use this T-SQL syntax SELECT CONVERT(varchar, getdate(), 23)
- To get MM/DD/YY use this T-SQL syntax SELECT CONVERT(varchar, getdate(), 1)
The cast and convert functions provide similar functionality. They are used to convert a value from one data type to another. So let's take a look at a practical example. The example is developed in SQL Server 2012 using the SQL Server Management Studio.
How to format text in SQL Server? ›- Select the query you wish to format.
- Ctrl + Shift + Q (This will open your query in the query designer)
- Then just go OK Voila! Query designer will format your query for you.
In SQL Server (Transact-SQL), the CONVERT function converts an expression from one datatype to another datatype. If the conversion fails, the function will return an error. Otherwise, it will return the converted value. TIP: Use the TRY_CONVERT function to return a NULL (instead of an error) if the conversion fails.
Is convert () a function? ›Converts a number from one measurement system to another. For example, CONVERT can translate a table of distances in miles to a table of distances in kilometers.
How do I change the date format from dd MM yyyy to dd MM yyyy? ›Press Ctrl+1 to open the Format Cells dialog. Alternatively, you can right click the selected cells and choose Format Cells… from the context menu. In the Format Cells window, switch to the Number tab, and select Date in the Category list. Under Type, pick a desired date format.
How do I change the date format from mm/dd/yyyy to mm/dd/yyyy in Java? ›Format date with SimpleDateFormat('MM/dd/yy') in Java
// displaying date Format f = new SimpleDateFormat("MM/dd/yy"); String strDate = f. format(new Date()); System. out. println("Current Date = "+strDate);
Press CTRL+1. In the Format Cells box, click the Number tab. In the Category list, click Date, and then choose a date format you want in Type.
How do I CONVERT and CAST in SQL? ›The SQL CAST function is mainly used to convert the expression from one data type to another data type. If the SQL Server CAST function is unable to convert a declaration to the desired data type, this function returns an error. We use the CAST function to convert numeric data into character or string data.
How do you write a CAST function in SQL? ›
- SELECT 1 + '1' AS result; ...
- SELECT 1 + CAST(1 AS INT) result; ...
- CAST ( expression AS target_type [ ( length ) ] ) ...
- SELECT CAST(5.95 AS INT) result; ...
- SELECT CAST(5.95 AS DEC(3,0)) result; ...
- SELECT CAST('2019-03-14' AS DATETIME) result;
SQL Server automatically converts the data from one data type to another. For example, when a smallint is compared to an int, the smallint is implicitly converted to int before the comparison proceeds. GETDATE() implicitly converts to date style 0. SYSDATETIME() implicitly converts to date style 21.
What does format () do in SQL? ›Definition and Usage. The FORMAT() function formats a value with the specified format (and an optional culture in SQL Server 2017). Use the FORMAT() function to format date/time values and number values. For general data type conversions, use CAST() or CONVERT().
How do I get text formatting? ›- Click the Replace button on the Home tab.
- Click More to expand the dialog box.
- Click the Format button.
- Select the type of formatting you want to replace.
- Specify the formatting you want to replace and click OK.
- Click in the Replace With field.
- Click the Format button again.
Select Edit -> SQL Formatter -> Format Selected Query (or press Ctrl+F12). -- Format All Queries: To format the whole batch of queries entered in the SQL window. Select Format -> SQL Formatter -> Format All Queries (or press Shift+F12).
How do I write a convert function in SQL Server? ›SQL CONVERT function: Syntax
An integer that specifies the length of the destination data type. A valid value to be converted. An integer expression that instructs how the function will convert the expression. The specified data type defines the range of values for the style argument.
The CONVERT() function allows you to convert a value of one type to another. In this syntax: target_type is the target data type to which you wan to convert the expression. It includes INT , BIT , SQL_VARIANT , etc.
What is convert with example? ›: to change from one form or function to another. converted the attic into a bedroom.
How to convert text to number in SQL? ›Related SQL Functions
TO_NUMBER converts a string to a number of data type NUMERIC. TO_CHAR performs the reverse operation; it converts a number to a string. CAST and CONVERT can be used to convert a string to a number of any data type. For example, you can convert a string to a number of data type INTEGER.
Use the function TO_DATE() to convert a text value containing a date to the date data type. This function takes two arguments: A date value. This can be a string (a text value) or a text column containing date information.
How to convert numeric to varchar in SQL? ›
- DECLARE @Number INT.
- SET @Number=12345.
- -- Using CAST function.
- SELECT CAST(@Number as varchar(10)) as Num1.
- -- Using CONVERT function.
- SELECT CONVERT(varchar(10),@Number) as Num2.
- -- Using STR function.
- SELECT LTRIM(STR(@Number,10)) as Num3.
convert implies a change fitting something for a new or different use or function.
Which is better parse or convert? ›Convert. ToInt32 allows null value, it doesn't throw any errors Int. parse does not allow null value, and it throws an ArgumentNullException error.
Why do we need to convert type? ›Generally takes place when in an expression more than one data type is present. In such conditions type conversion (type promotion) takes place to avoid loss of data. C. All the data types of the variables are upgraded to the data type of the variable with the largest data type.
Is convert the same as transform? ›Some common synonyms of transform are convert, metamorphose, transfigure, transmogrify, and transmute. While all these words mean "to change a thing into a different thing," transform implies a major change in form, nature, or function.