Cómo combinar fecha y hora en SQL: Ejemplos concretos y guía práctica

En SQL, a menudo es necesario combinar la fecha y la hora para generar un solo dato de fecha y hora. Esta operación es útil para registrar marcas de tiempo precisas o para buscar dentro de un rango de fechas y horas específico. En este artículo, se explicará en detalle cómo combinar fechas y horas en los principales sistemas de bases de datos SQL (SQL Server, MySQL, PostgreSQL, Oracle, SQLite), proporcionando ejemplos específicos para cada base de datos.

Índice

Cómo combinar fecha y hora en SQL Server

En SQL Server, se pueden combinar fechas y horas usando las funciones CAST o CONVERT.

Método básico

Primero, se presenta un método básico usando la función CAST.

DECLARE @date DATE = '2024-05-24';
DECLARE @time TIME = '13:45:30';

SELECT CAST(@date AS DATETIME) + CAST(@time AS DATETIME) AS CombinedDateTime;

En este ejemplo, se convierte la fecha y la hora al tipo DATETIME y luego se suman.

Método usando la función CONVERT

A continuación, se presenta un método utilizando la función CONVERT.

DECLARE @date DATE = '2024-05-24';
DECLARE @time TIME = '13:45:30';

SELECT CONVERT(DATETIME, @date) + CONVERT(DATETIME, @time) AS CombinedDateTime;

En este ejemplo, también se convierte la fecha y la hora al tipo DATETIME antes de sumarlas.

Método usando la función FORMAT

También es posible combinar fecha y hora en formato de cadena usando la función FORMAT.

DECLARE @date DATE = '2024-05-24';
DECLARE @time TIME = '13:45:30';

SELECT CAST(FORMAT(@date, 'yyyy-MM-dd') + ' ' + FORMAT(@time, 'HH:mm:ss') AS DATETIME) AS CombinedDateTime;

En este método, se convierte la fecha y la hora en formato de cadena utilizando la función FORMAT, luego se concatenan y se convierten al tipo DATETIME.

Estos son los principales métodos para combinar fechas y horas en SQL Server. Elige el método más adecuado según la situación o necesidad específica.

Cómo combinar fecha y hora en MySQL

En MySQL, se pueden combinar fechas y horas utilizando las funciones CONCAT o TIMESTAMP.

Método usando la función CONCAT

Primero, se presenta un método utilizando la función CONCAT para combinar fecha y hora en formato de cadena y convertirlos al tipo DATETIME.

SET @date = '2024-05-24';
SET @time = '13:45:30';

SELECT CAST(CONCAT(@date, ' ', @time) AS DATETIME) AS CombinedDateTime;

En este ejemplo, se utiliza la función CONCAT para combinar la fecha y la hora en una sola cadena, que luego se convierte al tipo DATETIME usando la función CAST.

Método usando la función TIMESTAMP

A continuación, se presenta un método utilizando la función TIMESTAMP, que combina fecha y hora y las convierte al tipo TIMESTAMP.

SET @date = '2024-05-24';
SET @time = '13:45:30';

SELECT TIMESTAMP(@date, @time) AS CombinedDateTime;

Este método permite combinar fecha y hora fácilmente usando la función TIMESTAMP.

Método usando la función ADDDATE

Otro método es utilizar la función ADDDATE para sumar la hora a la fecha.

SET @date = '2024-05-24';
SET @time = '13:45:30';

SELECT ADDDATE(@date, INTERVAL TIME_TO_SEC(@time) SECOND) AS CombinedDateTime;

En este método, se utiliza la función ADDDATE junto con INTERVAL para sumar la hora, convertida en segundos, a la fecha.

Estos son los principales métodos para combinar fechas y horas en MySQL. Elige el método más adecuado según la necesidad específica.

Cómo combinar fecha y hora en PostgreSQL

En PostgreSQL, se pueden combinar fechas y horas utilizando el operador || o la función MAKE_TIMESTAMP.

Método usando concatenación de cadenas y conversión

Primero, se presenta un método que consiste en concatenar fecha y hora como cadenas y convertir el resultado al tipo TIMESTAMP.

SELECT '2024-05-24'::date || ' ' || '13:45:30'::time::text AS combined_datetime;

Este método utiliza el operador || para concatenar la fecha y la hora como cadenas y luego las convierte al tipo ::timestamp.

Método usando la función MAKE_TIMESTAMP

A continuación, se presenta un método utilizando la función MAKE_TIMESTAMP, que combina año, mes, día, hora, minuto y segundo como argumentos para generar un TIMESTAMP.

SELECT MAKE_TIMESTAMP(2024, 5, 24, 13, 45, 30) AS combined_datetime;

En este método, se especifican por separado las partes de la fecha y la hora, que luego se combinan utilizando la función MAKE_TIMESTAMP.

Método usando INTERVAL

Otro método es usar INTERVAL para sumar la hora a la fecha.

SELECT '2024-05-24'::date + '13:45:30'::interval AS combined_datetime;

Este método convierte la hora al tipo INTERVAL antes de sumarla a la fecha.

Estos son los principales métodos para combinar fechas y horas en PostgreSQL. Elige el método más adecuado según la situación o necesidad específica.

Cómo combinar fecha y hora en Oracle

En Oracle, se pueden combinar fechas y horas utilizando las funciones TO_DATE o TO_TIMESTAMP.

Método usando la función TO_DATE

Primero, se presenta un método utilizando la función TO_DATE para combinar fecha y hora como cadenas y convertirlas al tipo DATE.

SELECT TO_DATE('2024-05-24 ' || '13:45:30', 'YYYY-MM-DD HH24:MI:SS') AS CombinedDateTime
FROM dual;

En este ejemplo, se utiliza la función TO_DATE para combinar fecha y hora y convertirlas en el tipo DATE utilizando el formato especificado.

Método usando la función TO_TIMESTAMP

A continuación, se presenta un método utilizando la función TO_TIMESTAMP. Esta función convierte la fecha y la hora combinadas como cadena al tipo TIMESTAMP.

SELECT TO_TIMESTAMP('2024-05-24 ' || '13:45:30', 'YYYY-MM-DD HH24:MI:SS') AS CombinedDateTime
FROM dual;

Este método utiliza la función TO_TIMESTAMP para convertir la fecha y la hora combinadas como cadena al tipo TIMESTAMP.

Método usando INTERVAL

Otro método es usar INTERVAL para sumar la hora a la fecha.

SELECT TO_DATE('2024-05-24', 'YYYY-MM-DD') + NUMTODSINTERVAL(TO_CHAR('13:45:30', 'HH24:MI:SS'), 'SECOND') AS CombinedDateTime
FROM dual;

En este ejemplo, se convierte la fecha con la función TO_DATE y luego se suma la hora, convertida en segundos mediante la función NUMTODSINTERVAL.

Estos son los principales métodos para combinar fechas y horas en Oracle. Elige el método más adecuado según la situación o necesidad específica.

Cómo combinar fecha y hora en SQLite

En SQLite, se pueden combinar fechas y horas utilizando la función DATETIME.

Método usando la función DATETIME

Primero, se presenta un método utilizando la función DATETIME para combinar fecha y hora como cadenas y convertirlas al tipo DATETIME.

SELECT DATETIME('2024-05-24', '13:45:30') AS CombinedDateTime;

En este método, se utiliza la función DATETIME para combinar fecha y hora y generar un valor de tipo DATETIME.

Método usando concatenación de cadenas y conversión

A continuación, se presenta un método que consiste en concatenar fecha y hora como cadenas y convertir el resultado al tipo DATETIME.

SELECT DATETIME('2024-05-24' || ' ' || '13:45:30') AS CombinedDateTime;

Este método utiliza el operador || para concatenar la fecha y la hora como cadenas, luego se convierten al tipo DATETIME utilizando la función DATETIME.

Método usando la función strftime

También es posible combinar fecha y hora utilizando la función strftime.

SELECT strftime('%Y-%m-%d %H:%M:%S', '2024-05-24', '13:45:30') AS CombinedDateTime;

En este método, se utiliza la función strftime para especificar el formato y combinar la fecha y la hora para generar un valor de tipo DATETIME.

Estos son los principales métodos para combinar fechas y horas en SQLite. Elige el método más adecuado según la necesidad específica.

Cómo combinar fecha y hora en otras bases de datos SQL

En otras bases de datos SQL también existen varios métodos para combinar fecha y hora. A continuación, se presentan algunos de los métodos más representativos en otras bases de datos.

IBM Db2

En IBM Db2, se utiliza la función TIMESTAMP para combinar fecha y hora.

SELECT TIMESTAMP('2024-05-24', '13:45:30') AS CombinedDateTime
FROM SYSIBM.SYSDUMMY1;

En este método, se utiliza la función TIMESTAMP para combinar fecha y hora y generar un valor de tipo TIMESTAMP.

MariaDB

En MariaDB, al igual que en MySQL, se pueden utilizar las funciones CONCAT o TIMESTAMP.

SET @date = '2024-05-24';
SET @time = '13:45:30';

SELECT TIMESTAMP(@date, @time) AS CombinedDateTime;

En este método, se utiliza la función TIMESTAMP para combinar fecha y hora.

Microsoft Access

En Microsoft Access, se utilizan el operador & o la función CDate para combinar fecha y hora.

SELECT CDate('2024-05-24' & ' ' & '13:45:30') AS CombinedDateTime;

En este método, se utiliza la función CDate para convertir la fecha y la hora combinadas como cadena al tipo Date/Time.

Firebird

En Firebird, se utiliza la función CAST para combinar fecha y hora.

SELECT CAST('2024-05-24' || ' ' || '13:45:30' AS TIMESTAMP) AS CombinedDateTime
FROM RDB$DATABASE;

En este método, se utiliza la función CAST para convertir la fecha y la hora combinadas como cadena al tipo TIMESTAMP.

Teradata

En Teradata, se utilizan las funciones CAST o TIMESTAMP para combinar fecha y hora.

SELECT CAST('2024-05-24 ' || '13:45:30' AS TIMESTAMP) AS CombinedDateTime;

En este método, se utiliza la función CAST para convertir la fecha y la hora combinadas como cadena al tipo TIMESTAMP.

Estos son los principales métodos para combinar fecha y hora en otras bases de datos SQL. Utiliza las funciones y operadores específicos de cada base de datos para elegir el método más adecuado.

Conclusión

En este artículo, hemos explicado en detalle cómo combinar fechas y horas en los principales sistemas de bases de datos SQL (SQL Server, MySQL, PostgreSQL, Oracle, SQLite, IBM Db2, MariaDB, Microsoft Access, Firebird, Teradata). Cada base de datos ofrece diferentes funciones y operadores específicos para combinar fechas y horas, proporcionando diversas alternativas según las necesidades. A continuación, se resumen los puntos principales.

  • SQL Server: Utiliza las funciones CAST, CONVERT, y FORMAT.
  • MySQL: Utiliza las funciones CONCAT, TIMESTAMP, y ADDDATE.
  • PostgreSQL: Utiliza el operador ||, la función MAKE_TIMESTAMP, y INTERVAL.
  • Oracle: Utiliza las funciones TO_DATE, TO_TIMESTAMP, y INTERVAL.
  • SQLite: Utiliza la función DATETIME, concatenación de cadenas, y la función strftime.
  • Otras bases de datos: Utiliza las funciones y operadores específicos de cada base de datos.

Utilizando estos métodos, podrás manejar datos de fecha y hora de manera precisa en diferentes situaciones. Elige el método más adecuado según las necesidades y requisitos para optimizar tus operaciones con bases de datos.

Índice