Podsumowanie: w tym samouczku dowiesz się, jak używać funkcji SQLite datetime()
do manipulowania wartościami datetime.
Wprowadzenie do funkcji SQLite datetime()
Funkcja datetime()
przyjmuje ciąg czasu i jeden lub więcej modyfikatorów. Składnia funkcji datetime()
jest następująca:
Code language: SQL (Structured Query Language) (sql)
W tej składni:
- Fragment
time_string
określa konkretny czas_daty, na przykładnow
dla bieżącego czasu_daty. - Każdy modyfikator modyfikuje wartość czasu_daty po jego lewej stronie. Funkcja ocenia argumenty od lewej do prawej, dlatego kolejność argumentów jest ważna.
Funkcja datetime()
zwraca wartość datetime w tym formacie: YYYY-MM-DD HH:MM:SS
Na przykład poniższe wyrażenie zwraca aktualny czas dnia wczorajszego:
Code language: SQL (Structured Query Language) (sql)
W tym wyrażeniu:
- Po pierwsze, łańcuch czasu
now
zwraca aktualną datę i czas. - Po drugie, modyfikator
-1 day
jest stosowany do aktualnego czasu daty, co daje w wyniku aktualny czas dnia wczorajszego. - Po trzecie, modyfikator
localtime
instruuje funkcję, aby zwróciła czas lokalny.
Przykłady funkcjiSQLite datetime()
Następująca instrukcja zwraca bieżącą datę i czas w czasie lokalnym:
Code language: SQL (Structured Query Language) (sql)
Aby zwrócić bieżącą datę i czas w UTC, używasz następującej instrukcji:
Code language: SQL (Structured Query Language) (sql)
Następująca instrukcja tworzy nową tabelę o nazwie referrals
z trzema kolumnami: id
, source
, i created_at
.
Code language: SQL (Structured Query Language) (sql)
Kolumna created_at
ma domyślną wartość CURRENT_TIMESTAMP
, która jest bieżącą datą i czasem w UTC.
Aby wstawić dane do tabeli referrals
, używasz następującej instrukcji INSERT
:
Code language: SQL (Structured Query Language) (sql)
Następujące zapytanie zwraca dane z tabeli referrals
:
Code language: SQL (Structured Query Language) (sql)
Jak wyraźnie widać na wyjściu, dane w kolumnie created_at
w utworzonym czasie w UTC.
Aby przekonwertować te wartości czasu utworzonego na czas lokalny, należy użyć funkcji datetime()
, jak pokazano w poniższym zapytaniu:
.