Data e hora do SQLite

Resumo : neste tutorial, mostraremos como trabalhar com os valores de data e hora do SQLite e usar as funções integradas de datas e horas para lidar com valores de data e hora.

SQLite não suporta classe de armazenamento de data e/ou hora integrada. Em vez disso, ele aproveita algumas funções internas de data e hora para usar outras classes de armazenamento, como TEXT, REALou INTEGERpara armazenar os valores de data e hora.

Usando a TEXTclasse de armazenamento para armazenar data e hora SQLite

Se você usar a TEXTclasse de armazenamento para armazenar valores de data e hora, será necessário usar o formato de string ISO8601 da seguinte forma:

YYYY-MM-DD HH:MM:SS.SSSLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Por exemplo,2016-01-01 10:20:05.123

Primeiro, crie uma nova tabela nomeada datetime_textpara demonstração.

CREATE TABLE datetime_text(
   d1 text, 
   d2 text
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

A tabela contém duas colunas d1e d2com TEXTtipo de dados.

Para inserir valores de data e hora na datetime_texttabela, você usa a DATETIMEfunção.

Por exemplo, para obter o valor atual de data e hora UTC, você passa a string agora literal para a função da seguinte maneira:

SELECT datetime('now');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Para obter a hora local, você passa um argumento adicional   localtime.

SELECT datetime('now','localtime');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Segundo, insira os valores de data e hora na datetime_texttabela da seguinte forma:

INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Terceiro, consulte os dados da datetime_texttabela.

SELECT
	d1,
	typeof(d1),
	d2,
	typeof(d2)
FROM
	datetime_text;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Data SQLite usando tipo de dados TEXT

Usando REALclasse de armazenamento para armazenar valores de data e hora SQLite

Você pode usar a REALclasse de armazenamento para armazenar os valores de data e/ou hora como números de dias julianos , que é o número de dias desde o meio-dia em Greenwich em 24 de novembro de 4714 aC, com base no calendário gregoriano proléptico.

Vamos dar uma olhada em um exemplo de uso da classe de armazenamento REAL para armazenar valores de data e hora.

Primeiro, crie uma nova tabela chamada datetime_real.

CREATE TABLE datetime_real(
   d1 real
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Em segundo lugar, insira o valor “atual” de data e hora na datetime_realtabela.

INSERT INTO datetime_real (d1)
VALUES(julianday('now'));Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Usamos a   julianday()função para converter a data e hora atuais para o dia juliano.

Terceiro, consulte os dados da datetime_realtabela.

SELECT d1 FROM datetime_real;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Data SQLite usando tipo de dados REAL

A saída não é legível por humanos.

Felizmente, você pode usar as funções integradas date()e time()para formatar um valor de data e hora da seguinte maneira:

SELECT
	date(d1),
	time(d1)
FROM
	datetime_real;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Funções SQLite de data e hora

Usando INTEGERpara armazenar valores de data e hora SQLite

Além  TEXTdas REALclasses de armazenamento, você pode usar a INTEGERclasse de armazenamento para armazenar valores de data e hora.

Normalmente usamos INTEGERpara armazenar o tempo UNIX, que é o número de segundos desde 1970-01-01 00:00:00 UTC. Veja o exemplo a seguir:

Primeiro, crie uma tabela que possua uma coluna cujo tipo de dados seja INTEGERpara armazenar os valores de data e hora.

CREATE TABLE datetime_int (d1 int);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Segundo, insira o valor atual de data e hora na datetime_inttabela.

INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Terceiro, consulte os dados da datetime_inttabela.

SELECT d1 FROM datetime_int;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

É um número inteiro.

Para formatar o resultado, você pode usar a função integrada datetime()da seguinte forma:

SELECT datetime(d1,'unixepoch')
FROM datetime_int;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Função SQLite DATETIME

Usando SQLite, você pode escolher livremente qualquer tipo de dados para armazenar valores de data e hora e usar a função integrada de datas e horas para converter entre formatos.

Para obter informações detalhadas sobre as funções de datas e horas do SQLite, verifique as funções integradas de datas e horas .

Neste tutorial, você aprendeu como usar as classes de armazenamento , e para armazenar valores de data e TEXThora REAL. INTEGERAlém disso, você aprendeu como usar as funções integradas de datas e horas para converter os valores de datas e horas armazenados em formatos legíveis.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *