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 parâmetros especificadosDATE('now')- Obtém a data atual:
Por exemplo, converter string para data:
SELECT DATE('2023-05-15 13:45:00')
-- Returns: 2023-05-15
SELECT DATE('now')
-- Returns current datePor exemplo, extrair ano, mês e dia da data:
-- Get year
SELECT STRFTIME('%Y', '2023-05-15')
-- Returns: 2023
-- Get month
SELECT STRFTIME('%m', '2023-05-15')
-- Returns: 05
-- Get day
SELECT STRFTIME('%d', '2023-05-15')
-- Returns: 15
-- Show combination of year and day (any separator can be used)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Returns: 2023:15
-- Use a dash separator instead
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Returns: 15-05-2023
-- Get day of week
SELECT STRFTIME('%w', '2023-05-15')
-- Returns: 1 (Monday; Sunday is 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 especificadores (p. 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:
-- Find all records from current year
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
formatted_start - A data de fim formatada como "DD-MM-YYYY". Chame esta coluna
formatted_end - A duração em dias entre início e fim, arredondada para o número inteiro mais próximo. Chame esta coluna
duration_days
Filtre apenas as linhas em que o ano da coluna start é 2009 (STRFTIME() retorna uma string e 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.
Folha de consulta
O SQL fornece várias funções úteis para manipular e formatar datas:
DATE()- Converte uma string em uma dataSTRFTIME()- Formata datas de acordo com parâmetros especificadosDATE('now')- Obtém a data atual
Converter string para data:
SELECT DATE('2023-05-15 13:45:00')
-- Retorna: 2023-05-15
SELECT DATE('now')
-- Retorna a data atualExtrair partes da data usando STRFTIME():
-- 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
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Retorna: 2023:15Especificadores de formato comuns:
- %Y: Ano (4 dígitos)
- %m: Mês (01-12)
- %d: Dia do mês (01-31)
- %H: Hora (00-23)
- %M: Minuto (00-59)
- %S: Segundo (00-59)
Usar em cláusulas WHERE:
-- Encontrar todos os registros do ano atual
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')Calcular diferenças de datas usando JULIANDAY():
JULIANDAY(end_date) - JULIANDAY(start_date)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