Date et heure SQLite
SQLite prend en charge les cinq fonctions de date et d'heure suivantes :
序号 | 函数 | 实例 |
---|---|---|
1 | date(timestring, modifier, modifier, ...) | 以 YYYY-MM-DD 格式返回日期。 |
2 | time(timestring, modifier, modifier, ...) | 以 HH:MM:SS 格式返回时间。 |
3 | datetime(timestring, modifier, modifier, ...) | 以 YYYY-MM-DD HH:MM:SS 格式返回。 |
4 | julianday(timestring, modifier, modifier, ...) | 这将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数。 |
5 | strftime(format, timestring, modifier, modifier, ...) | 这将根据第一个参数指定的格式字符串返回格式化的日期。具体格式见下边讲解。 |
Les cinq fonctions de date et d'heure ci-dessus prennent une chaîne d'heure comme paramètre. Une chaîne de temps suivie de zéro ou plusieurs modificateurs modificateurs. La fonction strftime() peut également prendre le format de chaîne de format comme premier argument. Les différents types de chaînes temporelles et de modificateurs vous seront expliqués en détail ci-dessous.
Chaîne de temps
Une chaîne de temps peut être dans l'un des formats suivants :
序号 | 时间字符串 | 实例 |
---|---|---|
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 | now | 2013-05-07 |
Vous pouvez utiliser « T » comme caractère littéral pour séparer la date et l'heure.
Modificateur
La chaîne d'heure peut être suivie de zéro ou plusieurs modificateurs, qui modifieront la date et/ou l'heure renvoyée par les cinq fonctions ci-dessus. L’une des cinq fonctions ci-dessus renvoie l’heure. Les modificateurs doivent être utilisés de gauche à droite, et les modificateurs pouvant être utilisés dans SQLite sont répertoriés ci-dessous :
NNN jours
NNN heures
NNN minutes
NNN.NNNN secondes
NNN mois
Années NNN
début du mois
début de l'année
début de journée
jour de la semaine N
unixepoch
heure locale
utc
Formatage
SQLite fournit une fonction très pratique strftime() pour formater n'importe quelle date et heure. Vous pouvez formater la date et l'heure en utilisant les substitutions suivantes :
替换 | 描述 |
---|---|
%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 |
Instance
Essayons maintenant une autre instance à l'aide de l'invite SQLite. Ce qui suit est pour calculer la date actuelle :
sqlite> SELECT date('now'); 2013-05-07
Ce qui suit est pour calculer le dernier jour du mois en cours :
sqlite> SELECT date('now','start of month','+1 month','-1 day'); 2013-05-31
Ce qui suit est pour calculer la somme des dates étant donné l'horodatage UNIX 1092941466 Heure :
sqlite> SELECT datetime(1092941466, 'unixepoch'); 2004-08-19 18:51:06
Voici comment calculer la date et l'heure par rapport au fuseau horaire local pour un horodatage UNIX donné 1092941466 :
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime'); 2004-08-19 11:51:06
Voici comment calculer le horodatage UNIX actuel :
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime'); 1367926057
Ci-dessous Calculez le nombre de jours depuis la signature de la Déclaration d'indépendance des États-Unis :
sqlite> SELECT julianday('now') - julianday('1776-07-04'); 86504.4775830326
Ce qui suit est le calcul du nombre de secondes depuis un moment spécifique en 2004 :
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56'); 295001572
Ce qui suit est le calcul du premier mois d'octobre de cette année-là, la date du mardi :
sqlite> SELECT date('now','start of year','+9 months','weekday 2'); 2013-10-01
Ce qui suit est le temps en secondes depuis l'époque UNIX (similaire à strftime(' %s','now'), sauf que la partie décimale est incluse) :
sqlite> SELECT (julianday('now') - 2440587.5)*86400.0; 1367926077.12598
Convertit entre les valeurs UTC et l'heure locale Lors du formatage des dates, utilisez le modificateur utc ou localtime, comme ceci :
sqlite> SELECT time('12:00', 'localtime'); 05:00:00rrree