Como combinar data e hora no SQL: Exemplos práticos e guia detalhado

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.

Índice

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ções MAKE_TIMESTAMP, INTERVAL.
  • Oracle: Use as funções TO_DATE, TO_TIMESTAMP, INTERVAL.
  • SQLite: Use a função DATETIME, concatenação de strings, função strftime.
  • 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.

Índice