格式化程序
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 是星期日) |
| %W |
一年中的一周,01-53 |
| %Y |
年,YYYY |
| %% |
% 符号 |
例子
现在让我们使用 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 months','weekday 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