Oi, Luana! Tudo bem?
Obrigada por compartilhar sua dúvida, é super normal sentir dificuldade no começo, ainda mais com SQL e manipulação de datas. Aos poucos, com a prática, vai se tornando mais tranquilo.
O SQLite tem algumas limitações e peculiaridades com datas, e isso pode confundir quem está começando. Pode ter ocorrido alguma atualização recente que alterou a sintaxe da ferramenta.
Para listar os clientes com 18 anos ou mais com base na data de nascimento (DataNascimento), você pode usar a seguinte consulta SQL no SQLite:
SELECT Nome, DataNascimento, CPF
FROM TabelaClientes
WHERE strftime('%Y', 'now') - strftime('%Y', DataNascimento) >= 18
AND (strftime('%m%d', 'now') >= strftime('%m%d', DataNascimento) OR strftime('%Y', 'now') - strftime('%Y', DataNascimento) > 18);
Explicação:
strftime('%Y', 'now') - strftime('%Y', DataNascimento)
calcula a diferença de anos entre a data atual (30/07/2025) e a data de nascimento.- A condição adicional verifica se o aniversário já ocorreu este ano (ou se a diferença é maior que 18 anos) para garantir precisão.
- A tabela é assumida como Tabelaclientes com colunas
Nome
, DataNascimento
e CPF
.
Retorno:
Essa consulta retornará os clientes listados na imagem, pois todos eles têm mais de 18 anos em 30/07/2025.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.
Até mais, Luana!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado!