Menu
Coddy logo textTech

Handling Dates Part 3

Parte da seção Fundamentos do Journey de SQL da Coddy — lição 33 de 72.

O SQL fornece várias funções úteis para manipular e formatar datas. Aqui estão algumas funções de data comuns:

  1. DATE() - Converte uma string em uma data
  2. STRFTIME() - Formata datas de acordo com os parâmetros especificados
  3. DATE('now') - Obtém a data atual:

Por exemplo, converter string para data:

SELECT DATE('2023-05-15 13:45:00')
-- Retorna: 2023-05-15

SELECT DATE('now')
-- Retorna a data atual

Por exemplo, extraia o ano, mês e dia da data:

-- Obter o ano
SELECT STRFTIME('%Y', '2023-05-15')
-- Retorna: 2023

-- Obter o mês
SELECT STRFTIME('%m', '2023-05-15')
-- Retorna: 05

-- Obter o dia
SELECT STRFTIME('%d', '2023-05-15')
-- Retorna: 15

-- Mostrar combinação de ano e dia (qualquer separador pode ser usado)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Retorna: 2023:15

-- Use um separador de traço em vez disso
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Retorna: 15-05-2023

-- Obter o dia da semana
SELECT STRFTIME('%w', '2023-05-15')
-- Retorna: 1 (Segunda-feira; Domingo é 0)

Especificadores de formato comuns:

  • %Y: Ano (4 dígitos)
  • %m: Mês (01-12)
  • %d: Dia do mês (01-31)
  • %w: Dia da semana (0-6, domingo é 0)
  • %H: Hora (00-23)
  • %M: Minuto (00-59)
  • %S: Segundo (00-59)

Você pode usar qualquer caractere separador entre os especificadores (ex: -, :, /). Por exemplo, STRFTIME('%d-%m-%Y', date) e STRFTIME('%d:%m:%Y', date) ambos combinam dia, mês e ano — apenas com separadores diferentes.

Você pode combinar essas funções em consultas:

-- Encontrar todos os registros do ano atual
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • <strong>events</strong>: <strong>id</strong>, <strong>start</strong>, <strong>end</strong>

Escreva uma consulta que mostre:

  • O ID do evento
  • A data de início formatada como "DD-MM-YYYY". Chame esta coluna de formatted_start
  • A data de término formatada como "DD-MM-YYYY". Chame esta coluna de formatted_end
  • A duração em dias entre o início e o fim, arredondada para o número inteiro mais próximo. Chame esta coluna de duration_days

Filtre apenas as linhas em que o ano da coluna start seja 2009 (STRFTIME() retorna uma string e não um número).

Ordene os resultados pelos dias de duração em ordem decrescente.

Lembrete: Para calcular a diferença entre datas, use: JULIANDAY(end) - JULIANDAY(start) e use ROUND() para arredondar para números inteiros.

Experimente você mesmo

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos