Manipulação de Datas - Parte 3
Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 33 de 72.
SQL fornece várias funções úteis para manipular e formatar datas. Aqui estão algumas funções comuns de data:
DATE()- Converte uma string em uma dataSTRFTIME()- Formata datas de acordo com os parâmetros especificadosDATE('now')- Obtém a data atual:
Por exemplo, converta uma string em data:
SELECT DATE('2023-05-15 13:45:00')
-- Retorna: 2023-05-15
SELECT DATE('now')
-- Retorna a data atualPor exemplo, extraia o ano, o mês e o dia de uma data:
-- Obter ano
SELECT STRFTIME('%Y', '2023-05-15')
-- Retorna: 2023
-- Obter mês
SELECT STRFTIME('%m', '2023-05-15')
-- Retorna: 05
-- Obter 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
-- Usar um separador de traço em vez disso
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Retorna: 15-05-2023
-- Obter 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 (por exemplo, -, :, /). Por exemplo, STRFTIME('%d-%m-%Y', date) e STRFTIME('%d:%m:%Y', date) 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:
events:id,start,end
Escreva uma consulta que mostre:
- O ID do evento
- A data de início formatada como "DD-MM-YYYY". Dê a esta coluna o nome
formatted_start - A data de término formatada como "DD-MM-YYYY". Dê a esta coluna o nome
formatted_end - A duração em dias entre o início e o término, arredondada para o número inteiro mais próximo. Dê a esta coluna o nome
duration_days
Filtre apenas as linhas cujo ano da coluna start seja 2009 (STRFTIME() retorna uma string, não um número).
Ordene os resultados pela duração em dias, 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
4Mais palavras-chave
A palavra-chave INA palavra-chave BETWEENA palavra-chave LIKEA palavra-chave ASRecapitulação - Modelos de celulares2Condições
Noções básicas de condiçõesA palavra-chave ANDA palavra-chave ORA palavra-chave NOTCombinação de várias condiçõesParêntesesBooleanos3Formato de retorno específico
Valores nulosOrdenar resultados - Parte 1Ordenar resultados - Parte 2Recapitulação - Empresa de segurança cibernéticaLimitar o número de registrosRecapitulação - Fábrica de veículos6Desafios introdutórios
Revisão - Eleição parlamentarRevisão - Prisão criminal pela políciaRevisão - Recipiente de bebidas de barRevisão - Projetar novas colunasPratique por conta própria: Playground de SQL