Funciones MAKEDATE y DATEDIFF en SQL

Contenido del Bootcamp Dirigido por: | Última modificación: 12 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Has escuchado hablar acerca de las funciones MAKEDATE y DATEDIFF en SQL y sus otras versiones? Si has llegado a este artículo debes de tener curiosidad acerca de todas las funciones que se pueden utilizar para trabajar con datos y, en específico, con datos que relacionan fechas con diferentes campos o que son datos por sí mismos.

Así pues, para ayudarte en tu aprendizaje, a continuación te queremos contar cómo actúan las funciones MAKEDATE y DATEDIFF en SQL, así como las versiones que las acompañan para jugar con el tiempo, las horas, minutos y segundos.

Funciones MAKEDATE y DATEDIFF en SQL

Dentro de las funciones utilizadas para manejar, controlar y gestionar fechas como datos en una base, se utilizan una serie de diversos elementos y funciones. Entre ellos, encontramos las siguiente funciones: MAKEDATE, MAKETIME, DATEDIFF y TIMEDIFF.

Cómo funcionan MAKEDATE y MAKETIME

Las funciones de MAKEDATE y MAKETIME son las encargadas de crear un fecha o un elemento horario (hora, minutos y segundos) a partir de elementos específicos, tales como el año y el día. En términos conceptuales son lo mismo, aunque funcionen de diferente manera entre ellas.

Ahora bien, la sintaxis general para la opción de creación de la fecha es MAKEDATE (añodía), donde deberás pasar los datos relevantes al año y al día de los 365.

Un ejemplo práctico de la utilización de esta sentencia se puede determinar de la siguiente manera:

SELECT MAKEDATE (1989, 351);

Una vez hayas ejecutado la sentencia, podrás visualizar la siguiente tabla con los resultados necesarios:

MAKEDATE (1989, 351)
1989 -12 – 17

Por otro lado, la función MAKETIME tiene el mismo sentido que el anterior, solo que esta busca obtener una hora que tenga el formato de horas, minutos y segundos. Es por eso que la sintaxis general es diferente a la anterior y se presenta de la siguiente manera: MAKETIME (horaminutosegundo).

Así pues, para que te quede claro su funcionamiento, a continuación te traemos un ejemplo práctico del uso de MAKETIME para la creación de una hora:

SELECT MAKETIME (20, 30, 15);

Una vez ejecutada la instrucción, podrás visualizar la siguiente tabla con el resultado:

MAKETIME (20, 30, 15)
20:30:15

Cómo funciona DATEDIFF y TIMEDIFF

Por otro lado, SQL también nos permite obtener la diferencia entre dos valores, ya sean referentes a la fecha o al tiempo. En primer lugar, para obtener la diferencia entre fechas, la función va a devolver la diferencia en número de días. Para ello, se utiliza la sentencia de DATEDIFF (intervalodate1date2), donde se establece el intervalo de ambas fechas para obtener la diferencia.

Para que te quede mucho más claro, te traemos un ejemplo, que determina cómo podrías obtener la diferencia en cantidad de días:

USE [BASE DE DATOS]

SELECT DATEDIFF (‘1989 – 12- 17 20:30:15.000001’, ‘1994 – 12 – 01 14:00:00.000001’), DATEDIFF (‘1994 – 12 – 01 14:00:00.000001’, ‘1989 – 12- 17 20:30:15.000001’)

DATEDIFF (‘1989 – 12- 17 20:30:15.000001’, ‘1994 – 12 – 01 14:00:00.000001’)DATEDIFF (‘1994 – 12 – 01 14:00:00.000001’, ‘1989 – 12- 17 20:30:15.000001’)
– 18101810

Asimismo, también puedes obtener la diferencia en horas, segundos y minutos dentro de dos horarios diferentes. Este resultado se devolverá en horas y la sintaxis general para su uso está establecida de la siguiente manera: TIMEDIFF (hora1hora2).

De esta manera, podrás ver el uso de esta sentencia en el siguiente ejemplo, donde hemos establecido diferentes posibilidades para observar cómo funcionan:

SELECT TIMEDIFF (‘1989 – 12- 17 20:30:15.000001’, ‘1994 – 12 – 01 14:00:00.000001’), TIMEDIFF (‘1994 – 12 – 01 14:00:00.000001’, ‘1989 – 12- 17 20:30:15.000001’), TIMEDIFF (‘1989 – 12- 17 20:30:15.000001’, ‘1989 – 12 – 01 14:00:00.000001’), TIMEDIFF (‘1989 – 12 – 01 14:00:00.000001’, ‘1989 – 12- 17 20:30:15.000001’)

TIMEDIFF (‘1989 – 12- 17 20:30:15.000001’, ‘1994 – 12 – 01 14:00:00.000001’)TIMEDIFF (‘1994 – 12 – 01 14:00:00.000001’, ‘1989 – 12- 17 20:30:15.000001’)TIMEDIFF (‘1989 – 12- 17 20:30:15.000001’, ‘1989 – 12 – 01 14:00:00.000001’)TIMEDIFF (‘1989 – 12 – 01 14:00:00.000001’, ‘1989 – 12- 17 20:30:15.000001’)
-838:59:59:0000000838:59:59:0000000390:30:15:0000000-390:30:15:0000000

Ya que has llegado hasta aquí, estamos seguros de que has aprendido acerca de las funciones MAKEDATE y DATEDIFF en SQL, así como las versiones que lo acompañan para jugar con los datos de tiempo.

Ahora bien, ¿no crees que puedes seguir explorando este campo del Big Data? Si te interesa y quieres aprovechar esta gran oportunidad para cambiar tu futuro laboral, no puedes dejar pasar nuestra formación intensiva: el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. En pocos meses, podrás convertirte en todo un experto y triunfar en el mundillo tecnológico. ¡Anímate ahora a solicitar información para impulsar tu carrera!

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado