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.