SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak sformatować datę i godzinę w SQLite

Problem:

Chcesz sformatować kolumnę lub wartość daty i godziny w SQLite.

Przykład:

Nasza baza danych zawiera tabelę o nazwie ticket z danymi w kolumnach passenger_ID , train_number i sale_datetime .

identyfikator_pasażera numer pociągu 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

Dla każdej sprzedaży biletów uzyskajmy identyfikator pasażera, numer pociągu oraz datę i godzinę sprzedaży. Chcemy sformatować datę sprzedaży tak, aby wyświetlała dzień, miesiąc i rok oddzielone ukośnikami (/), z przecinkiem między rokiem a godziną. Chcemy tylko godzinę i minutę sprzedaży.

Oto zapytanie, które możesz napisać:

Rozwiązanie:

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

Oto wynik zapytania:

identyfikator_pasażera numer pociągu sale_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

Dyskusja:

Użyj STRFTIME() funkcja formatująca data\godzina\dataczas w SQLite. Ta funkcja przyjmuje dwa argumenty. Pierwszym argumentem jest ciąg formatujący zawierający wzorzec części daty/godziny. W naszym przykładzie używamy ciągu formatującego „%d/%m/%Y, %H:%M „. W tym ciągu:

  • %d to dwucyfrowy dzień.
  • %m to miesiąc dwucyfrowy.
  • %Y to rok czterocyfrowy.
  • %H to dwucyfrowa godzina.
  • %M to minuta dwucyfrowa.

Więcej specyfikatorów daty i godziny można znaleźć w dokumentacji SQLite.

Drugim argumentem jest wartość czasu/daty/daty/godziny do sformatowania. Może to być wyrażenie zwracające wartość czasu/daty/daty/godziny lub nazwę kolumny czasu/daty/daty/godziny. (W naszym przykładzie jest to kolumna sale_datetime .)

STRFTIME() zwraca sformatowaną datę i godzinę. W naszym przykładzie sformatowana data i czas nie zawierają sekund, a części daty są oddzielone ukośnikami (/) zamiast myślnikami (-).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyzwalacz SQLite

  2. SQLiteReadOnlyDatabaseException:próba napisania bazy danych tylko do odczytu (kod 1032)

  3. Zwróć koniec miesiąca w SQLite

  4. SQLite Gdzie

  5. Ograniczenie tabeli SQLite unikalne i użycie ON CONFLICT REPLACE