SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como formatar uma data e hora no SQLite

Problema:


Você deseja formatar uma coluna ou valor de data e hora no SQLite.

Exemplo:


Nosso banco de dados tem uma tabela chamada ticket com dados nas colunas passenger_ID , train_number e sale_datetime .
passenger_ID train_number sale_datetime
245NX 4505 2019-10-17 12:56:30
127RG 3403 2019-10-17 11:45:23
567FH 4505 2019-10-18 12:40:32
230AP 6700 2019-10-18 13:20:20
118BB 3403 2019-10-18 13:13:13

Para cada venda de passagem, vamos obter a identificação do passageiro, o número do trem e a data e hora da venda. Queremos formatar a data de venda para mostrar o dia, mês e ano separados por barras (/), com uma vírgula entre o ano e a hora. Queremos apenas a hora e o minuto da venda.

Aqui está a consulta que você escreveria:

Solução:

SELECT passenger_ID,
  train_number,
  STRFTIME('%d/%m/%Y, %H:%M', sale_datetime)
  AS sale_formatted_datetime 
FROM ticket;

Segue o resultado da consulta:
passenger_ID train_number sale_formatted_datetime
245NX 4505 17/10/2019, 12:56
127RG 3403 17/10/2019, 11:45
567FH 4505 18/10/2019, 12h40
230AP 6700 18/10/2019, 13:20
118BB 3403 18/10/2019, 13:13

Discussão:


Use o STRFTIME() função para formatar dados de data\hora\datahora no SQLite. Esta função recebe dois argumentos. O primeiro argumento é uma string de formato que contém o padrão de parte de data/hora. Em nosso exemplo, usamos a string de formato '%d/%m/%Y, %H:%M '. Nesta cadeia:
  • %d é um dia de dois dígitos.
  • %m é um mês de dois dígitos.
  • %Y é um ano de quatro dígitos.
  • %H é uma hora de dois dígitos.
  • %M é um minuto de dois dígitos.

Você pode encontrar mais especificadores de data e hora na documentação do SQLite.

O segundo argumento é o valor de hora/data/data/hora a ser formatado. Pode ser uma expressão que retorna um valor de hora/data/datahora ou o nome de uma coluna hora/data/datahora. (No nosso exemplo, é a coluna sale_datetime .)

STRFTIME() retorna a data e hora formatadas. Em nosso exemplo, a data e a hora formatadas não contêm segundos e as partes da data são separadas por barras (/) em vez de traços (-).