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