sql >> Base de Datos >  >> RDS >> SQLite

Cómo formatear una fecha y hora en SQLite

Problema:

Desea formatear una columna o valor de fecha y hora en SQLite.

Ejemplo:

Nuestra base de datos tiene una tabla llamada ticket con datos en las columnas passenger_ID , train_number y sale_datetime .

pasajero_ID número_de_tren salida_fechahora
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 venta de boletos, obtengamos la identificación del pasajero, el número de tren y la fecha y hora de venta. Queremos dar formato a la fecha de venta para que muestre el día, el mes y el año separados por barras (/), con una coma entre el año y la hora. Solo queremos la hora y el minuto de la venta.

Esta es la consulta que escribiría:

Solución:

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

Este es el resultado de la consulta:

pasajero_ID número_de_tren salida_formatted_datetime
245NX 4505 17/10/2019, 12:56
127RG 3403 17/10/2019, 11:45
567FH 4505 18/10/2019, 12:40
230AP 6700 18/10/2019, 13:20
118BB 3403 18/10/2019, 13:13

Discusión:

Utilice el STRFTIME() función para formatear datos de fecha\hora\fechahora en SQLite. Esta función toma dos argumentos. El primer argumento es una cadena de formato que contiene el patrón de parte de fecha/hora. En nuestro ejemplo, usamos la cadena de formato '%d/%m/%Y, %H:%M '. En esta cadena:

  • %d es un día de dos dígitos.
  • % m es un mes de dos dígitos.
  • %Y es un año de cuatro dígitos.
  • %H es una hora de dos dígitos.
  • %M es un minuto de dos dígitos.

Puede encontrar más especificadores de fecha y hora en la documentación de SQLite.

El segundo argumento es el valor de hora/fecha/fechahora al formato. Puede ser una expresión que devuelva un valor de hora/fecha/fechahora o el nombre de una columna de hora/fecha/fechahora. (En nuestro ejemplo, es la columna sale_datetime .)

STRFTIME() devuelve la fecha y la hora formateadas. En nuestro ejemplo, la fecha y la hora formateadas no contienen segundos y las partes de la fecha están separadas por barras inclinadas (/) en lugar de guiones (-).