SQLite - data i godzina
SQLite obsługuje pięć funkcji daty i czasu w następujący sposób -
Sr.No. | Funkcjonować | Przykład |
---|---|---|
1 | data (czas, modyfikatory ...) | Zwraca datę w następującym formacie: RRRR-MM-DD |
2 | czas (timestring, modyfikatory ...) | Zwraca czas jako HH: MM: SS |
3 | datetime (timestring, modyfikatory ...) | Zwraca RRRR-MM-DD GG: MM: SS |
4 | julianday (timestring, modyfikatory ...) | Zwraca liczbę dni od południa w Greenwich 24 listopada 4714 roku pne |
5 | strftime (timestring, modyfikatory ...) | Zwraca datę sformatowaną zgodnie z ciągiem formatu określonym jako pierwszy argument sformatowany zgodnie z elementami formatującymi opisanymi poniżej. |
Wszystkie powyższe pięć funkcji daty i godziny przyjmują jako argument ciąg czasu. Po ciągu czasu następuje zero lub więcej modyfikatorów. Funkcja strftime () również przyjmuje jako pierwszy argument ciąg formatu. Poniższa sekcja zawiera szczegółowe informacje na temat różnych typów ciągów czasowych i modyfikatorów.
Ciągi czasu
Ciąg czasu może mieć dowolny z następujących formatów -
Sr.No. | Ciąg czasu | Przykład |
---|---|---|
1 | RRRR-MM-DD | 2010-12-30 |
2 | RRRR-MM-DD GG: MM | 2010-12-30 12:10 |
3 | RRRR-MM-DD GG: MM: SS.SSS | 2010-12-30 12: 10: 04.100 |
4 | MM-DD-RRRR GG: MM | 30-12-2010 12:10 |
5 | HH: MM | 12:10 |
6 | RRRR-MM-DDTHH: MM | 2010-12-30 12:10 |
7 | HH: MM: SS | 12:10:01 |
8 | RRRRMMDD GGMMSS | 20101230 121001 |
9 | teraz | 2013-05-07 |
Możesz użyć litery „T” jako dosłownego znaku oddzielającego datę i godzinę.
Modyfikatory
Po ciągu czasu może następować zero lub więcej modyfikatorów, które zmienią datę i / lub godzinę zwróconą przez dowolną z powyższych pięciu funkcji. Modyfikatory są stosowane od lewej do prawej.
W SQLite dostępne są następujące modyfikatory -
- Dni NNN
- NNN godzin
- NNN minut
- NNN.NNNN sekund
- NNN miesięcy
- NNN lat
- początek miesiąca
- początek roku
- początek dnia
- dzień tygodnia N
- unixepoch
- localtime
- utc
Formatters
SQLite zapewnia bardzo przydatną funkcję strftime()aby sformatować dowolną datę i godzinę. Możesz użyć następujących podstawień, aby sformatować datę i godzinę.
Podstawienie | Opis |
---|---|
%re | Dzień miesiąca, 01-31 |
%fa | Ułamki sekund, SS.SSS |
% H | Godzina, 00-23 |
%jot | Dzień roku, 001-366 |
%JOT | Numer dnia juliańskiego, DDDD.DDDD |
% m | Miesiąc 00-12 |
% M | Minuta, 00-59 |
% s | Sekundy od 1970-01-01 |
% S | Sekundy, 00-59 |
% w | Dzień tygodnia, 0-6 (0 to niedziela) |
% W | Tydzień roku, 01-53 |
% Y | Rok RRRR |
%% | symbol% |
Przykłady
Wypróbujmy teraz różne przykłady przy użyciu zachęty SQLite. Następujące polecenie oblicza aktualną datę.
sqlite> SELECT date('now');
2013-05-07
Następujące polecenie oblicza ostatni dzień bieżącego miesiąca.
sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31
Następujące polecenie oblicza datę i godzinę dla danego znacznika czasu UNIX 1092941466.
sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06
Następujące polecenie oblicza datę i godzinę dla danego znacznika czasu UNIX 1092941466 i kompensuje lokalną strefę czasową.
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06
Następujące polecenie oblicza bieżący znacznik czasu UNIX.
sqlite> SELECT strftime('%s','now');
1393348134
Następujące polecenie oblicza liczbę dni od podpisania Deklaracji Niepodległości Stanów Zjednoczonych.
sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023
Następujące polecenie oblicza liczbę sekund od określonego momentu w 2004 roku.
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
Następujące polecenie oblicza datę pierwszego wtorku października dla bieżącego roku.
sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01
Następujące polecenie oblicza czas od epoki UNIX w sekundach (np. Strftime ('% s', 'now') z wyjątkiem części ułamkowej).
sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598
Aby przekonwertować między wartościami czasu UTC i czasu lokalnego podczas formatowania daty, użyj modyfikatorów utc lub czasu lokalnego w następujący sposób -
sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00