English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQLite unterstützt folgende fünf Datum- und Zeitfunktionen:
Nummer | Funktion | 实例 |
---|---|---|
1 | date(timestring, modifier, modifier, ...) | mit YYYY-MM-mit DD Format zurückgegeben. |
2 | time(timestring, modifier, modifier, ...) | mit HH:MM:SS Format zurückgegeben. |
3 | datetime(timestring, modifier, modifier, ...) | mit YYYY-MM-DD HH:MM:SS Format zurückgegeben. |
4 | julianday(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 |
5 | strftime(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.
Eine Zeitzeichenkette kann in einem der folgenden Formate vorliegen:
Nummer | Zeitzeichenkette | 实例 |
---|---|---|
1 | YYYY-MM-DD | 2010-12-30 |
2 | YYYY-MM-DD HH:MM | 2010-12-30 12:10 |
3 | YYYY-MM-DD HH:MM:SS.SSS | 2010-12-30 12:10:04.100 |
4 | MM-DD-YYYY HH:MM | 30-12-2010 12:10 |
5 | HH:MM | 12:10 |
6 | YYYY-MM-DDTHH:MM | 2010-12-30 12:10 |
7 | HH:MM:SS | 12:10:01 |
8 | YYYYMMDD HHMMSS | 20101230 121001 |
9 | jetzt | 2013-05-07 |
Sie können "T" als Trennzeichen für Datum und Zeit verwenden.
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