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 (-).