SQLite strftime
SQLite strftime函数是一个非常强大的函数,可帮助您获取日期和时间以及执行日期计算。
语法:
strftime(format, timestring [, modifier1, modifier2, ... modifier_n ] )
在这里,格式可以是以下任意一种:
格式 |
说明 |
%Y |
年份为4位数字(0000至9999) |
%W |
一年中的一周(00到53) |
%w |
星期几(0到6,其中0是星期日) |
%m |
一年中的月份(01到12) |
%d |
每月的某天(00到31) |
%H |
小时(00到24) |
%M |
分钟(00到25) |
%S |
秒(00到59) |
%s |
自1970年1月1日以来的第二次 |
%f |
分数秒(SS.SSS) |
%j |
一年中的某天(001至366) |
%J |
朱利安日作为数值 |
此处,时间字符串是日期值,可以是以下任意一个:
timestring |
说明 |
now |
它是用于返回当前日期的文字。 |
YYYY-MM-DD |
它指定日期格式为'YYYY-MM-DD' |
YYYY-MM-DD HH: MM |
它指定日期格式为'YYYY-MM-DD HH: MM' |
YYYY-MM-DD HH: MM: SS |
它指定日期格式为'YYYY-MM-DD HH: MM: SS' |
YYYY-MM-DD HH: MM: SS.SSS |
它指定日期格式为'YYYY-MM-DD HH: MM: SS.SSS' |
HH: MM |
它指定日期格式为'HH: MM' |
HH: MM: SS |
它指定日期格式为'HH: MM: SS' |
HH: MM: SS.SSS |
它指定日期格式为'HH: MM: SS.SSS' |
YYYY-MM-DDTHH: MM |
它指定日期格式为'YYYY-MM-DDTHH: MM'的日期值,其中t是分隔日期和时间部分的文字字符。 |
YYYY-MM-DDTHH: MM: SS |
它指定格式为'YYYY-MM-DDTHH: MM: SS'的日期值,其中t是分隔日期和时间部分的文字字符 |
YYYY-MM-DDTHH: MM: SS.SSS |
它指定日期格式为'YYYY-MM-DDTHH: MM: SS.SSS'的日期值,其中t是分隔日期和时间部分的文字字符 |
DDDDDDDDDD |
它指定儒略日期号 |
修饰符1,修饰符2,...,modifier_n: 修饰符是可选的。这些与时间字符串一起使用以增加或减少时间,日期或年份。
修饰符 |
说明 |
[+-] NNN years |
用于指定添加/减去日期的年数 |
[+-] NNN months |
用于指定添加/减去日期的月份数 |
[+-] NNN days |
用于指定添加/减去日期的天数 |
[+-] NNN hours |
它用于指定添加/减去日期的小时数 |
[+-] NNN minutes |
用于指定添加/减去日期的分钟数 |
[+-] NNN seconds |
用于指定添加/减去日期的秒数 |
[+-] NNN.NNNN seconds |
用于指定添加/减去日期的秒数(和小数秒) |
start of year |
用于将日期移回至年初 |
start of month |
用于将日期移回到月初 |
start of day |
用于将日期移回一天的开始 |
weekday N |
用于将日期向前移动到工作日编号为N的下一个日期(0 =星期日,1 =星期一,2 =星期二,3 =星期三,4 =星期四,5 =星期五,6 =星期六) |
unixepoch |
它与DDDDDDDDDD时间字符串一起用于将日期解释为UNIX时间(即: 自1970-01-01起的秒数) |
localtime |
用于将日期调整为本地时间,假设时间字符串以UTC表示 |
utc |
假定时间字符串以当地时间表示,则用于将日期调整为utc |
示例1: 检索当前日期:
SELECT strftime('%Y %m %d', 'now');
SELECT strftime('%Y-%m-%d %H:%M', 'now');
输出:
示例2: 检索每月的第一天:
SELECT strftime('%Y-%m-%d', '2017-04-14', 'start of month');
SELECT strftime('%Y-%m-%d', 'now', 'start of month');
SELECT strftime('%Y-%m-%d', '2017-03-07', '-6 days');
SELECT strftime('%Y-%m-%d', 'now', '-13 days');
输出:
示例2: 检索每月的最后一天:
SELECT strftime('%Y-%m-%d', '2017-03-07', 'start of month', '+1 month', '-1 day');
SELECT strftime('%Y-%m-%d', 'now', 'start of month', '+1 month', '-1 day');
SELECT strftime('%Y-%m-%d', '2017-03-07', '+24 days');
SELECT strftime('%Y-%m-%d', 'now', '+24 days');
输出:
示例3: 加/减年和日:
SELECT strftime('%Y-%m-%d', '2017-04-14', '+2 years');
SELECT strftime('%Y-%m-%d', 'now', '-2 years');
SELECT strftime('%Y-%m-%d', '2017-04-14', '+7 days');
SELECT strftime('%Y-%m-%d', 'now', '-10 days');
输出: