English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite 日期和时间

SQLite unterstützt folgende fünf Datum- und Zeitfunktionen:

NummerFunktion实例
1date(timestring, modifier, modifier, ...)mit YYYY-MM-mit DD Format zurückgegeben.
2time(timestring, modifier, modifier, ...)mit HH:MM:SS Format zurückgegeben.
3datetime(timestring, modifier, modifier, ...)mit YYYY-MM-DD HH:MM:SS Format zurückgegeben.
4julianday(timestring, modifier, modifier, ...)Dies gibt zurück, wie viele Jahre vor Christus von der Greenwich-Zeit aus gezählt werden, 4714 Jahr 11 Monat 24 Tage seit Mittag des Tages
5strftime(format, timestring, modifier, modifier, ...)Dies gibt das formatierte Datum zurück, basierend auf dem vom ersten Parameter angegebenen Formatstring. Nähere Informationen finden Sie in der nachstehenden Erklärung.

Diese fünf Datum- und Zeitfunktionen nehmen die Zeitzeichenkette als Parameter. Nach der Zeitzeichenkette können Null oder mehrere Modifikatoren folgen. Die strftime()-Funktion kann auch das Formatstring format als ersten Parameter übernehmen. Nachstehend wird detailliert über verschiedene Arten von Zeitzeichenketten und Modifikatoren erläutert.

Zeitzeichenkette

Eine Zeitzeichenkette kann in einem der folgenden Formate vorliegen:

NummerZeitzeichenkette实例
1YYYY-MM-DD2010-12-30
2YYYY-MM-DD HH:MM2010-12-30 12:10
3YYYY-MM-DD HH:MM:SS.SSS2010-12-30 12:10:04.100
4MM-DD-YYYY HH:MM30-12-2010 12:10
5HH:MM12:10
6YYYY-MM-DDTHH:MM2010-12-30 12:10
7HH:MM:SS12:10:01
8YYYYMMDD HHMMSS20101230 121001
9jetzt2013-05-07

Sie können "T" als Trennzeichen für Datum und Zeit verwenden.

Modifikator (Modifier)

Nach der Zeitzeichenkette können Null oder mehrere Modifikatoren folgen, die das Datum und die Zeit ändern, die von den fünf genannten Funktionen zurückgegeben wird./oder Zeit. Jede der fünf genannten Funktionen gibt Zeit zurück. Der Modifikator sollte von links nach rechts verwendet werden. Nachstehend sind die in SQLite verwendbaren Modifikatoren aufgeführt:

  • NNN Tage

  • NNN Stunden

  • NNN Minuten

  • NNN.NNNN Sekunden

  • NNN Monate

  • NNN Jahre

  • start of month

  • start of year

  • start of day

  • weekday N

  • unixepoch

  • localtime

  • utc

格式化

SQLite 提供了非常方便的函数 strftime() 来格式化任何日期和时间。您可以使用以下的替换来格式化日期和时间:

替换描述
%d一月中的第几天,01-31
%f带小数部分的秒,SS.SSS
%H小时,00-23
%j一年中的第几天,001-366
%J儒略日数,DDDD.DDDD
%m月,00-12
%M分,00-59
%s从 1970-01-01 算起的秒数
%S秒,00-59
%w一周中的第几天,0-6 (0 is Sunday)
%W一年中的第几周,01-53
%Y年,YYYY
%%% symbol

实例

现在让我们使用SQLite提示符尝试各种示例。以下命令计算当前日期。

sqlite> SELECT date('now');
2013-05-07

以下命令计算当前月份的最后一天。

sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31

以下命令计算给定UNIX时间戳1092941466的日期和时间。

sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06

以下命令计算给定UNIX时间戳1092941466的日期和时间,并补偿您的本地时区。

sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06

以下命令计算当前的UNIX时间戳。

sqlite> SELECT strftime('%s','now');
1393348134

以下命令计算自美国独立宣言签署以来的天数。

sqlite> SELECT julianday('now') - julianday('1776-07-04
86798.7094695023

以下命令计算自2004年某个特定时刻以来的秒数。

sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56
295001572

以下命令计算当年10月的第一个星期二的日期。

sqlite> SELECT date('now','start of year','+9  2
2013-10-01

以下命令以秒为单位计算自UNIX时代以来的时间(类似于strftime('%s','now'),但包括小数部分)。

sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598

要在格式化日期时在UTC和本地时间值之间进行转换,请使用utc或localtime修饰符,如下所示:

sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00