SQLite - Datum & Uhrzeit
SQLite unterstützt fünf Datums- und Uhrzeitfunktionen wie folgt:
Sr.Nr. | Funktion | Beispiel |
---|---|---|
1 | Datum (Zeitleiste, Modifikatoren ...) | Dies gibt das Datum in diesem Format zurück: JJJJ-MM-TT |
2 | Zeit (Zeitleiste, Modifikatoren ...) | Dies gibt die Zeit als HH: MM: SS zurück |
3 | Datum / Uhrzeit (Zeitleiste, Modifikatoren ...) | Dies gibt JJJJ-MM-TT HH: MM: SS zurück |
4 | julianday (timestring, modifikatoren ...) | Dies gibt die Anzahl der Tage seit Mittag in Greenwich am 24. November 4714 v. Chr. Zurück |
5 | strftime (Zeitleiste, Modifikatoren ...) | Dies gibt das Datum zurück, das gemäß der Formatzeichenfolge formatiert wurde, die als erstes Argument angegeben wurde, das gemäß den unten erläuterten Formatierern formatiert wurde. |
Alle oben genannten fünf Datums- und Zeitfunktionen verwenden eine Zeitzeichenfolge als Argument. Auf die Zeitzeichenfolge folgen null oder mehr Modifikatoren. Die Funktion strftime () verwendet auch eine Formatzeichenfolge als erstes Argument. Im folgenden Abschnitt erfahren Sie mehr über verschiedene Arten von Zeitzeichenfolgen und Modifikatoren.
Zeitstrings
Eine Zeitzeichenfolge kann in einem der folgenden Formate vorliegen:
Sr.Nr. | Zeitzeichenfolge | Beispiel |
---|---|---|
1 | JJJJ-MM-TT | 2010-12-30 |
2 | JJJJ-MM-TT HH: MM | 2010-12-30 12:10 |
3 | JJJJ-MM-TT HH: MM: SS.SSS | 2010-12-30 12: 10: 04.100 |
4 | MM-TT-JJJJ HH: MM | 30-12-2010 12:10 |
5 | HH: MM | 12:10 |
6 | JJJJ-MM-TTTHH: MM | 2010-12-30 12:10 |
7 | HH: MM: SS | 12:10:01 |
8 | JJJJMMTT HHMMSS | 20101230 121001 |
9 | jetzt | 2013-05-07 |
Sie können das "T" als Literalzeichen zwischen Datum und Uhrzeit verwenden.
Modifikatoren
Auf die Zeitzeichenfolge können null oder mehr Modifikatoren folgen, die Datum und / oder Uhrzeit ändern, die von einer der oben genannten fünf Funktionen zurückgegeben werden. Modifikatoren werden von links nach rechts angewendet.
Die folgenden Modifikatoren sind in SQLite verfügbar:
- NNN Tage
- NNN Stunden
- NNN Minuten
- NNN.NNNN Sekunden
- NNN Monate
- NNN Jahre
- Anfang des Monats
- Anfang des Jahres
- Tagesanfang
- Wochentag N.
- unixepoch
- localtime
- utc
Formatierer
SQLite bietet eine sehr praktische Funktion strftime()um ein Datum und eine Uhrzeit zu formatieren. Sie können die folgenden Ersetzungen verwenden, um Datum und Uhrzeit zu formatieren.
Auswechslung | Beschreibung |
---|---|
% d | Tag des Monats, 01-31 |
% f | Sekundenbruchteil, SS.SSS |
% H. | Stunde, 00-23 |
% j | Tag des Jahres, 001-366 |
% J. | Julianische Tagesnummer, DDDD.DDDD |
% m | Monat 00-12 |
% M. | Minute, 00-59 |
% s | Sekunden seit dem 01.01.1970 |
% S. | Sekunden, 00-59 |
% w | Wochentag 0-6 (0 ist Sonntag) |
% W. | Woche des Jahres, 01-53 |
% Y. | Jahr, JJJJ |
%% | % Symbol |
Beispiele
Probieren wir jetzt verschiedene Beispiele mit der SQLite-Eingabeaufforderung aus. Der folgende Befehl berechnet das aktuelle Datum.
sqlite> SELECT date('now');
2013-05-07
Der folgende Befehl berechnet den letzten Tag des aktuellen Monats.
sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31
Der folgende Befehl berechnet Datum und Uhrzeit für einen bestimmten UNIX-Zeitstempel 1092941466.
sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06
Der folgende Befehl berechnet Datum und Uhrzeit für einen bestimmten UNIX-Zeitstempel 1092941466 und kompensiert Ihre lokale Zeitzone.
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06
Der folgende Befehl berechnet den aktuellen UNIX-Zeitstempel.
sqlite> SELECT strftime('%s','now');
1393348134
Der folgende Befehl berechnet die Anzahl der Tage seit der Unterzeichnung der US-Unabhängigkeitserklärung.
sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023
Der folgende Befehl berechnet die Anzahl der Sekunden seit einem bestimmten Moment im Jahr 2004.
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
Der folgende Befehl berechnet das Datum des ersten Dienstag im Oktober für das laufende Jahr.
sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01
Der folgende Befehl berechnet die Zeit seit der UNIX-Epoche in Sekunden (wie strftime ('% s', 'now'), außer Bruchteil).
sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598
Verwenden Sie zum Konvertieren zwischen UTC- und lokalen Zeitwerten beim Formatieren eines Datums die folgenden Modifikatoren utc oder localtime:
sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00