Rajendra Gupta
SQL Convert Date - SQL Date functions

Funciones y formatos de SQL Convert Date

October 10, 2019 by

En el siguiente artículo, vamos a explorar varios formatos de SQL Convert Date para poder usarlo al escribir consultas SQL.

Vamos a necesitar trabajar con los datos de tipo de fecha en SQL. Puede ser algo complicado de manejar a veces para los desarrolladores de SQL Server. Supongamos que se tiene una tabla de productos con una columna de tiempo. Crea una marca de tiempo para cada pedido de cliente. Esto puede enfrentar los siguientes problemas en él:

  • No se puede insertar los datos en la tabla Producto porque la aplicación intenta insertar datos en un formato de una fecha diferente
  • Supongamos que tiene datos en una tabla en formato AAAA-MM-DD hh: mm: ss. Tiene un informe de ventas diario y, en ese sentido, desea agrupar los datos por fecha. Desea tener datos en el informe en formato AAAA-MM-DD

Vamos a enfrentar muchos de estos escenarios cuando no tengamos el formato de fecha según nuestro requisito. No podemos cambiar las propiedades de la tabla para poder satisfacer cada uno de los requisitos. En este caso, vamos a necesitar usar las funciones integradas en SQL Server para poder dar el formato de fecha requerido.

Tipos de datos para fecha y hora

Tenemos los siguientes tipos de datos de fecha y hora de conversión de SQL en SQL Server.

Tipo de dato

Formato

Time

hh:mm:ss[.nnnnnnn]

Date

YYYY-MM-DD

SmallDateTime

YYYY-MM-DD hh:mm:ss

DateTime

YYYY-MM-DD hh:mm:ss[.nnn]

DateTime2

YYYY-MM-DD hh:mm:ss[.nnnnnnn]

DateTimeOffset

YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm

En SQL Server, nosotros hemos utilizado funciones integradas como SQL GETDATE() y GetUTCDate() para poder proporcionar la fecha y el formato del servidor en varios formatos.

  • SYSDATETIME(): para devolver la fecha y hora del servidor
  • SYSDATETIMEOffset(): va a devolver la fecha y hora del servidor, junto con el desplazamiento UTC
  • GETUTCDATE(): va a devolver la fecha y la hora GMT (hora media de Greenwich)
  • GETDATE(): va a devolver la fecha y hora del servidor

Ejecute las siguientes consultas para poder obtener los resultados en sus respectivos formatos.

SQL Convert Date - SQL Date functions

Formatos de fecha de conversión SQL

Como se mencionó anteriormente, es muy probable que necesitemos formatear una fecha en diferentes formatos según nuestros requisitos. Podemos tratar de usar la función CONVERT() en SQL Server para poder formatear DateTime en varios formatos.

La sintaxis para la función SQL : CONVERT() es la siguiente.

  • Data_Type: necesitamos poder definir el tipo de dato junto con la longitud. En la función de fecha, vamos a utilizar los tipos de datos Varchar (longitud)
  • Fecha: necesitamos poder especificar la fecha que queremos convertir
  • DateFormatCode: necesitamos especificar el DateFormatCode para poder convertir una fecha en un formulario apropiado. Exploraremos más sobre este tema en la próxima sección

Exploremos varios formatos de fecha usando las funciones de conversión de fecha SQL.

Primero, vamos a declarar una variable para mantener la fecha y hora actual usando la función SQL GETDATE() con la siguiente consulta.

SQL Convert Date - SQL Date functions

Podemos apreciar varios formatos de fecha en la siguiente tabla. Puede mantener esta tabla a mano para fines de referencia en el formato de columnas de fecha y hora.


Date and Time Formats


SQL convert date query


Output


Datetime format as
MM/DD/YY

Standard: U.S.A.


SQL Convert Date - date format MM/DD/YY


Datetime format in
YY.MM.DD format

Standard: ANSI


Datetime format in YY.MM.DD format


Datetime format in
DD/MM/YY format

Standard: British/French


Datetime format in DD/MM/YY format


Datetime format in DD.MM.YY format

Standard: German


Datetime format in DD.MM.YY format


Datetime format in
DD-MM-YY format

Standard: Italian


Datetime format in DD-MM-YY format


Datetime format in
DD MMM YY format

Standard: Shortened month name


Datetime format in DD MMM YY format


Datetime format in
MMM DD, YY format

Standard: Shortened month name


Datetime format in MMM DD,YY format


Datetime Format
In HH:MM: SS

Standard: 24 hour time


SQL Convert Date - Datetime Format
In HH:MM:SS


Datetime format as
[MMM DD YYYY hh:mm:ss:mmm(AM/PM)]

Standard: Default + milliseconds


Datetime format as 
[MMM DD YYYY hh:mm:ss:mmm(AM/PM)]


Datetime format in
MM-DD-YY format

Standard: USA


Datetime format in MM- DD-YY format


Datetime format in
YY/MM/DD format

Standard: JAPAN


Datetime format in YY/MM/DD format


Datetime format in
YYMMDD format

Standard: ISO


Datetime format in YYMMDD format


Datetime format in
DD MMM YYYY HH:MM:SS:MMM

Standard: Europe default + milliseconds


Datetime format in DD MMM YYYY HH:MM:SS: MMM


Datetime format in
HH:MM:SS:MMM

Standard:  24 hour time with milliseconds


Datetime format in HH:MM:SS: MMM


Datetime format in
YYYY-MM-DD HH:MM:SS

Default: ODBC canonical


Datetime format in YYYY-MM-DD HH:MM: SS


Datetime format in
YYYY-MM-DD HH:MM:SS.mmm

Standard: ODBC canonical with milliseconds


SQL Convert Date - Datetime format in YYYY-MM-DD HH:MM: SS.mmm


Datetime format in
mm/dd/yy hh:mm:ss (AM/PM)

Standard: USA with Time AM/PM


Datetime format in mm/dd/yy hh:mm:ss (AM/PM)


Datetime format in
[yyyy-mm-dd]


Datetime format in [yyyy-mm-dd]


Datetime format in
[hh:mm:ss]


Datetime format in [hh:mm:ss]


Datetime format in
[mm-dd-yyyy hh:mm:ss.mmm]


Datetime format in [mm-dd-yyyy hh:mm:ss.mmm]


Datetime format in
[MMM DD YYYY HH: SS (AM/PM)]

Standard: Default


Datetime format in [MMM DD YYYY HH: SS (AM/PM)]


Datetime format in
[MM/DD/YYYY]

Standard: USA


Datetime format in [MM/DD/YYYY]


Datetime format in
[YYYY.MM.DD]

Standard: ANSI


Datetime format in [YYYY.MM.DD]


Datetime format in
DD/MM/YYYY format

Standard: British/French


Datetime format in DD/MM/YYYY format


Datetime format in
DD.MM.YY format

Standard: German


Datetime format in DD.MM.YY format


Datetime format in
DD-MM-YY format

Standard: Italian


Datetime format in DD-MM-YY format


Datetime format in
DD MMM YYYY format

Standard: Shortened month name


Datetime format in DD MMM YYYY format


Datetime format in
MMM DD,YYYY format

Standard: Shortened month name


Datetime format in MMM DD,YYYY format


Datetime Format
In HH:MM: SS

Standard: 24 hour time


SQL Convert Date -  Datetime Format
In HH:MM: SS


Datetime format as
[MMM DD YYYY hh:mm:ss:mmm(AM/PM)]

Standard: Default + milliseconds


Datetime format as 
[MMM DD YYYY hh:mm:ss:mmm(AM/PM)]


Datetime format in
MM- DD-YY format

Standard: USA


Datetime format in MM- DD-YY format


Datetime format in
YYYY/MM/DD format

Standard: JAPAN


Datetime format in YYYY/MM/DD format


Datetime format in
YYYYMMDD format

Standard: ISO


Datetime format in YYYYMMDD format


Datetime format in
DD MMM YYYY HH:MM:SS: MMM

Standard: Europe default + milliseconds


Datetime format in DD MMM YYYY HH:MM:SS: MMM


Datetime format in
HH:MM:SS: MMM

Standard:  24 hour time with milliseconds


Datetime format in HH:MM:SS: MMM


Datetime format in
YYYY-MM-DD HH:MM: SS

Default: ODBC canonical


Datetime format in YYYY-MM-DD HH:MM: SS


Datetime format in
YYYY-MM-DD HH:MM: SS.mmm

Standard: ODBC canonical with milliseconds


Datetime format in YYYY-MM-DD HH:MM: SS.mmm


Datetime format in
YYYY-MM-DDTHH:MM: SS.mmm

Standard: ISO8601


Datetime format in YYYY-MM-DDTHH:MM: SS.mmm


Datetime format in
[DD MMM YYYY hh:mi:ss:mmm(AM/PM)]

Standard: Islamic/Hijri date


SQL Convert Date - Datetime format in [DD MMM YYYY hh:mi:ss:mmm(AM/PM)]

En la tabla, vamos a ver varios formatos a la fecha de conversión SQL según sus requisitos. En la siguiente tabla, se puede apreciar todos los formatos de fecha SQL juntos.

Opciones de formato de fecha

Salida SQL de la función convert

0

Dec 30 2006 12:38AM

1

12/30/06

2

06.12.30

3

30/12/2006

4

30.12.06

5

30/12/2006

6

30-Dec-06

7

Dec 30, 06

8

00:38:54

9

Dec 30 2006 12:38:54:840AM

10

12-30-06

11

06/12/1930

12

61230

13

30 Dec 2006 00:38:54:840

14

00:38:54:840

20

30/12/2006 00:38

21

38:54.8

22

12/30/06 12:38:54 AM

23

30/12/2006

24

00:38:54

25

38:54.8

26

2006-30-12 00:38:54.840

27

12-30-2006 00:38:54.840

28

12-2006-30 00:38:54.840

29

38:54.8

30

30-2006-12 00:38:54.840

31

2006-30-12

32

12-30-2006

33

12-2006-30

34

30/12/2006

35

30-2006-12

100

Dec 30 2006 12:38AM

101

12/30/2006

102

2006.12.30

103

30/12/2006

104

30.12.2006

105

30/12/2006

106

30-Dec-06

107

Dec 30, 2006

108

00:38:54

109

Dec 30 2006 12:38:54:840AM

110

12-30-2006

111

30/12/2006

112

20061230

113

30 Dec 2006 00:38:54:840

114

00:38:54:840

120

30/12/2006 00:38

121

38:54.8

126

2006-12-30T00:38:54.840

127

2006-12-30T00:38:54.840

130

10 ?? ????? 1427 12:38:54:840A

131

10/12/1427 12:38:54:840AM

A continuación, vamos a explorar una función que sea útil para la fecha de conversión de SQL.

DATEADD

Podemos usar la función SQL DATEADD para poder agregar un período particular a nuestra fecha. Vamos a suponer que tenemos el requisito de agregar 1 mes a la fecha actual. Podemos usar la función SQL DATEADD para poder realizar esta tarea.

La sintaxis para la función SQL DATEADD es la siguiente

Intervalo: con esto podemos especificar un intervalo que debe agregarse en la fecha especificada. Donde podemos tener valores como año, trimestre, mes, día, semana, hora, minuto, etc.

Número: este especifica el número del intervalo para poder agregar. Como por ejemplo, si hemos especificado el intervalo como el Mes y Número como el 2, significa que se deben agregar 2 meses en la fecha.

En la siguiente consulta, queremos agregar 2 meses en la fecha actual.

Se puede ver el resultado en la captura de pantalla a continuación.

DateADD function SQL -  - SQL Convert Date

Del mismo modo, vamos agregar 1 año a la fecha actual utilizando la siguiente consulta.

SQL convert date - DateADD function SQL

Podemos combinar las funciones SQL DATEADD y CONVERT para poder obtener resultados en los formatos DateTime deseados. Y supongamos en el ejemplo anterior; que queremos un formato de fecha en MMM DD, YYYY. Podemos tratar de usar el código de formato 107 para poder obtener resultados en este formato.

Puede ejecutar el siguiente código para obtener Newdate y ConvertedDate.

Conclusión

En este artículo, hemos explorado varios formatos de fecha de conversión SQL. Los cuales nos permiten obtener una fecha en el formato requerido con la función encubierta fácilmente. Puede utilizar este artículo para tener una referencia para todos los formatos de fecha y usarlo en sus consultas.

Rajendra Gupta
Comandos SQL, Funciones

Acerca de Rajendra Gupta

As an MCSA certified and Microsoft Certified Trainer in Gurgaon, India, with 13 years of experience, Rajendra works for a variety of large companies focusing on performance optimization, monitoring, high availability, and disaster recovery strategies and implementation. He is the author of hundreds of authoritative articles on SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git, and related technologies that have been viewed by over 10m readers to date. He is the creator of one of the biggest free online collections of articles on a single topic, with his 50-part series on SQL Server Always On Availability Groups. Based on his contribution to the SQL Server community, he has been recognized with various awards including the prestigious “Best author of the year" continuously in 2020 and 2021 at SQLShack. Raj is always interested in new challenges so if you need consulting help on any subject covered in his writings, he can be reached at rajendra.gupta16@gmail.com View all posts by Rajendra Gupta

168 Views