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-01-01 |
10) | %f | 分数秒(SS.SSS) |
11) | %j | 一年中的天(001〜366) |
12) | %J | 儒略日的数字值 |
在这里,TIMESTRING是一个日期值,它可以是以下中的任何一个:
指数 | TIMESTRING | 描述 |
---|---|---|
1) | now | 它是用来返回当前日期文字。 |
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 | 它指定Julian日期数 |
modifier1,modifier2,… modifier_n:修饰符是可选的。这些都是用来与TIMESTRING添加或减去时间,日期或数年。
指数 | 修改 | 描述 |
---|---|---|
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 TIMESTRING解释日期作为UNIX时间(即:自1970-01-01秒数) |
13) | localtime | 它是用来调整日期本地时间,假设在TIMESTRING UTC表达 |
14) | utc | 它是用来调整日期UTC,假设在TIMESTRING本地时间表达 |
例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');
输出:
评论前必须登录!
注册