Em SQL, combinar data e hora para gerar um único dado de data e hora é uma prática comum. Essa operação é útil para registrar um timestamp preciso ou ao pesquisar um intervalo específico de tempo. Neste artigo, vamos detalhar como combinar data e hora nos principais bancos de dados SQL (SQL Server, MySQL, PostgreSQL, Oracle, SQLite) e fornecer exemplos específicos para cada um deles.
Como combinar data e hora no SQL Server
No SQL Server, você pode usar as funções CAST ou CONVERT para combinar data e hora.
Método básico
Primeiro, vamos introduzir um método básico usando a função CAST.
DECLARE @date DATE = '2024-05-24';
DECLARE @time TIME = '13:45:30';
SELECT CAST(@date AS DATETIME) + CAST(@time AS DATETIME) AS CombinedDateTime;Neste exemplo, a data e a hora são convertidas para o tipo DATETIME antes de serem somadas.
Método usando a função CONVERT
Em seguida, vamos apresentar um método usando a função CONVERT.
DECLARE @date DATE = '2024-05-24';
DECLARE @time TIME = '13:45:30';
SELECT CONVERT(DATETIME, @date) + CONVERT(DATETIME, @time) AS CombinedDateTime;Neste exemplo, a data e a hora também são convertidas para o tipo DATETIME antes de serem somadas.
Método usando a função FORMAT
Também é possível usar a função FORMAT para combinar data e hora no formato de string.
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;Neste método, a função FORMAT é usada para converter a data e a hora para strings, que são então combinadas e convertidas para o tipo DATETIME.
Esses são os principais métodos para combinar data e hora no SQL Server. Escolha o método mais adequado ao seu caso de uso ou situação.
Como combinar data e hora no MySQL
No MySQL, você pode usar as funções CONCAT ou TIMESTAMP para combinar data e hora.
Método usando a função CONCAT
Primeiro, vamos apresentar um método que usa a função CONCAT para combinar data e hora como strings e, em seguida, convertê-las para o tipo DATETIME.
SET @date = '2024-05-24';
SET @time = '13:45:30';
SELECT CAST(CONCAT(@date, ' ', @time) AS DATETIME) AS CombinedDateTime;Neste exemplo, a função CONCAT é usada para combinar a data e a hora em uma string, que é então convertida para o tipo DATETIME usando a função CAST.
Método usando a função TIMESTAMP
Em seguida, vamos apresentar um método usando a função TIMESTAMP. Essa função combina data e hora e retorna um valor do tipo TIMESTAMP.
SET @date = '2024-05-24';
SET @time = '13:45:30';
SELECT TIMESTAMP(@date, @time) AS CombinedDateTime;Este método usa a função TIMESTAMP para combinar facilmente data e hora.
Método usando a função ADDDATE
Além disso, você pode usar a função ADDDATE para somar o tempo à data.
SET @date = '2024-05-24';
SET @time = '13:45:30';
SELECT ADDDATE(@date, INTERVAL TIME_TO_SEC(@time) SECOND) AS CombinedDateTime;Neste método, a função ADDDATE e o intervalo de segundos do tempo são usados para somar o tempo à data.
Esses são os principais métodos para combinar data e hora no MySQL. Escolha o método mais adequado ao seu caso de uso específico.
Como combinar data e hora no PostgreSQL
No PostgreSQL, você pode usar o operador || ou a função MAKE_TIMESTAMP para combinar data e hora.
Método usando concatenação de strings e casting
Primeiro, vamos apresentar um método que combina data e hora como strings e, em seguida, faz o cast para o tipo TIMESTAMP.
SELECT '2024-05-24'::date || ' ' || '13:45:30'::time::text AS combined_datetime;Neste método, o operador || é usado para combinar data e hora como strings, e a operação ::timestamp para fazer o cast.
Método usando a função MAKE_TIMESTAMP
Em seguida, vamos apresentar um método usando a função MAKE_TIMESTAMP para combinar data e hora. Essa função aceita ano, mês, dia, hora, minuto e segundo como argumentos e gera um TIMESTAMP.
SELECT MAKE_TIMESTAMP(2024, 5, 24, 13, 45, 30) AS combined_datetime;Neste método, cada parte da data e hora é especificada individualmente, e a função MAKE_TIMESTAMP combina tudo.
Método usando INTERVAL
Você também pode usar INTERVAL para somar o tempo à data.
SELECT '2024-05-24'::date + '13:45:30'::interval AS combined_datetime;Neste método, o tempo é convertido para o tipo INTERVAL antes de ser somado à data.
Esses são os principais métodos para combinar data e hora no PostgreSQL. Escolha o método mais adequado ao seu caso de uso ou situação.
Como combinar data e hora no Oracle
No Oracle, você pode usar as funções TO_DATE ou TO_TIMESTAMP para combinar data e hora.
Método usando a função TO_DATE
Primeiro, vamos apresentar um método que usa a função TO_DATE para combinar data e hora. Este método combina data e hora como strings e as converte para o tipo DATE.
SELECT TO_DATE('2024-05-24 ' || '13:45:30', 'YYYY-MM-DD HH24:MI:SS') AS CombinedDateTime
FROM dual;Neste exemplo, a função TO_DATE é usada para combinar data e hora e convertê-las para o tipo DATE no formato especificado.
Método usando a função TO_TIMESTAMP
Em seguida, vamos apresentar um método que usa a função TO_TIMESTAMP. Essa função converte a data e a hora combinadas como strings para o tipo TIMESTAMP.
SELECT TO_TIMESTAMP('2024-05-24 ' || '13:45:30', 'YYYY-MM-DD HH24:MI:SS') AS CombinedDateTime
FROM dual;Neste método, a função TO_TIMESTAMP é usada para converter a data e a hora combinadas como strings para o tipo TIMESTAMP.
Método usando INTERVAL
Além disso, você pode usar INTERVAL para somar o tempo à data.
SELECT TO_DATE('2024-05-24', 'YYYY-MM-DD') + NUMTODSINTERVAL(TO_CHAR('13:45:30', 'HH24:MI:SS'), 'SECOND') AS CombinedDateTime
FROM dual;Neste exemplo, a função TO_DATE é usada para converter a data, e a função NUMTODSINTERVAL converte o tempo em segundos como um INTERVAL, que é somado à data.
Esses são os principais métodos para combinar data e hora no Oracle. Escolha o método mais adequado ao seu caso de uso ou situação.
Como combinar data e hora no SQLite
No SQLite, você pode usar a função DATETIME para combinar data e hora.
Método usando a função DATETIME
Primeiro, vamos apresentar um método que usa a função DATETIME para combinar data e hora. Essa função combina data e hora como strings e as converte para o tipo DATETIME.
SELECT DATETIME('2024-05-24', '13:45:30') AS CombinedDateTime;Neste método, a função DATETIME é usada para combinar data e hora e gerar um valor do tipo DATETIME.
Método usando concatenação de strings e casting
Em seguida, vamos apresentar um método que combina data e hora como strings e as converte para o tipo DATETIME.
SELECT DATETIME('2024-05-24' || ' ' || '13:45:30') AS CombinedDateTime;Neste método, o operador || é usado para combinar data e hora como strings, e a função DATETIME as converte para o tipo DATETIME.
Método usando a função strftime
Também é possível usar a função strftime para combinar data e hora.
SELECT strftime('%Y-%m-%d %H:%M:%S', '2024-05-24', '13:45:30') AS CombinedDateTime;Neste método, a função strftime é usada para especificar o formato e combinar data e hora, gerando um valor do tipo DATETIME.
Esses são os principais métodos para combinar data e hora no SQLite. Escolha o método mais adequado ao seu caso de uso ou situação.
Como combinar data e hora em outros bancos de dados SQL
Outros bancos de dados SQL também oferecem várias maneiras de combinar data e hora. Abaixo, apresentamos alguns métodos em bancos de dados representativos.
IBM Db2
No IBM Db2, você pode usar a função TIMESTAMP para combinar data e hora.
SELECT TIMESTAMP('2024-05-24', '13:45:30') AS CombinedDateTime
FROM SYSIBM.SYSDUMMY1;Este método usa a função TIMESTAMP para combinar data e hora e gerar um valor do tipo TIMESTAMP.
MariaDB
No MariaDB, você pode usar as funções CONCAT ou TIMESTAMP, assim como no MySQL.
SET @date = '2024-05-24';
SET @time = '13:45:30';
SELECT TIMESTAMP(@date, @time) AS CombinedDateTime;Este método usa a função TIMESTAMP para combinar data e hora.
Microsoft Access
No Microsoft Access, você pode usar o operador & ou a função CDate para combinar data e hora.
SELECT CDate('2024-05-24' & ' ' & '13:45:30') AS CombinedDateTime;Este método usa a função CDate para combinar data e hora como strings e convertê-las para o tipo Date/Time.
Firebird
No Firebird, você pode usar a função CAST para combinar data e hora.
SELECT CAST('2024-05-24' || ' ' || '13:45:30' AS TIMESTAMP) AS CombinedDateTime
FROM RDB$DATABASE;Este método usa a função CAST para combinar data e hora como strings e convertê-las para o tipo TIMESTAMP.
Teradata
No Teradata, você pode usar as funções CAST ou TIMESTAMP para combinar data e hora.
SELECT CAST('2024-05-24 ' || '13:45:30' AS TIMESTAMP) AS CombinedDateTime;Este método usa a função CAST para combinar data e hora como strings e convertê-las para o tipo TIMESTAMP.
Esses são os principais métodos para combinar data e hora em outros bancos de dados SQL. Use as funções ou operadores específicos de cada banco de dados para escolher o método mais adequado ao seu caso de uso.
Conclusão
Neste artigo, detalhamos como combinar data e hora nos principais bancos de dados SQL (SQL Server, MySQL, PostgreSQL, Oracle, SQLite, IBM Db2, MariaDB, Microsoft Access, Firebird, Teradata). Cada banco de dados oferece funções e operadores específicos para combinar data e hora, proporcionando diversas abordagens. A seguir, resumimos os pontos principais:
- SQL Server: Use as funções
CAST,CONVERT,FORMAT. - MySQL: Use as funções
CONCAT,TIMESTAMP,ADDDATE. - PostgreSQL: Use o operador
||, as funçõesMAKE_TIMESTAMP,INTERVAL. - Oracle: Use as funções
TO_DATE,TO_TIMESTAMP,INTERVAL. - SQLite: Use a função
DATETIME, concatenação de strings, funçãostrftime. - Outros bancos de dados: Use as funções ou operadores específicos de cada banco de dados.
Usando esses métodos, você pode lidar com dados de data e hora de forma precisa em diversas situações. Escolha o método mais adequado às suas necessidades e otimize suas operações com bancos de dados.

