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:
DATE()- Converte uma string em uma dataSTRFTIME()- Formata datas de acordo com os parâmetros especificadosDATE('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 atualPor 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')Desafio
FácilTabelas 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
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns