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