Primeira dúvida é se quando definimos o tipo de dados em uma coluna na criação de uma tabela como DATE, o valor retornado vai ser uma STRING ou número? e sempre que usarmos a função strftime também será retornado uma string?
Primeira dúvida é se quando definimos o tipo de dados em uma coluna na criação de uma tabela como DATE, o valor retornado vai ser uma STRING ou número? e sempre que usarmos a função strftime também será retornado uma string?
Oi Bruno,
Excelente pergunta! 👍
Quando você define uma coluna como DATE
no SQLite, o valor armazenado internamente é um texto no formato ISO8601 (YYYY-MM-DD).
No entanto, ao consultar, o SQLite pode retornar esse valor como texto ou número, dependendo do contexto.
A função strftime
sempre retorna uma string, pois ela formata a data/hora de acordo com o formato especificado.
Mesmo que a entrada seja um valor numérico ou um tipo DATE
, a saída será sempre uma string.
Exemplo:
-- Cria uma tabela com uma coluna DATE
CREATE TABLE exemplo (data_col DATE);
-- Insere uma data
INSERT INTO exemplo (data_col) VALUES ('2024-03-15');
-- Consulta a data (retorna como string)
SELECT data_col FROM exemplo; -- Resultado: '2024-03-15'
-- Usa strftime para formatar a data (retorna uma string)
SELECT strftime('%d/%m/%Y', data_col) FROM exemplo; -- Resultado: '15/03/2024'
Para saber mais: Documentação oficial do SQLite sobre funções de data e hora. Este link aborda em detalhes as funções de data e hora do SQLite, incluindo strftime
, e explica como os valores são armazenados e retornados.
Continue explorando e aprofundando seus conhecimentos! 🤔