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');
输出: