📅  最后修改于: 2020-11-13 00:44:45             🧑  作者: Mango
SQLite strftime函数是一个非常强大的函数,可帮助您获取日期和时间以及执行日期计算。
句法:
strftime(format, timestring [, modifier1, modifier2, ... modifier_n ] )
在这里,格式可以是以下任意一种:
Index | format | Explanation |
---|---|---|
1) | %Y | Year as 4 digits (0000 to 9999) |
2) | %W | Week of year (00 to 53) |
3) | %w | Day of week (0 to 6, where 0 is Sunday) |
4) | %m | Month of year (01 to 12) |
5) | %d | Day of month (00 to 31) |
6) | %H | Hour (00 to 24) |
7) | %M | Minute (00 to 25) |
8) | %S | Seconds (00 to 59) |
9) | %s | Seconds since 1970-01-01 |
10) | %f | Fractional seconds (SS.SSS) |
11) | %j | Day of year (001 to 366) |
12) | %J | Julian day as a numeric value |
在这里,时间字符串是一个日期值,可以是以下任意一个:
Index | timestring | Description |
---|---|---|
1) | now | It is a literal used to return the current date. |
2) | YYYY-MM-DD | It specifies the date value formatted as ‘YYYY-MM-DD’ |
3) | YYYY-MM-DD HH:MM | It specifies the date value formatted as ‘YYYY-MM-DD HH:MM’ |
4) | YYYY-MM-DD HH:MM:SS | It specifies the date value formatted as ‘YYYY-MM-DD HH:MM:SS’ |
5) | YYYY-MM-DD HH:MM:SS.SSS | It specifies the date value formatted as ‘YYYY-MM-DD HH:MM:SS.SSS’ |
6) | HH:MM | It specifies the date value formatted as ‘HH:MM’ |
7) | HH:MM:SS | It specifies the date value formatted as ‘HH:MM:SS’ |
8) | HH:MM:SS.SSS | It specifies the date value formatted as ‘HH:MM:SS.SSS’ |
9) | YYYY-MM-DDTHH:MM | It specifies the date value formatted as ‘YYYY-MM-DDTHH:MM’ where t is a literal character separating the date and time portions. |
10) | YYYY-MM-DDTHH:MM:SS | It specifies the date value formatted as ‘YYYY-MM-DDTHH:MM:SS’ where t is a literal character separating the date and time portions |
11) | YYYY-MM-DDTHH:MM:SS.SSS | It specifies the date value formatted as ‘YYYY-MM-DDTHH:MM:SS.SSS’ where t is a literal character separating the date and time portions |
12) | DDDDDDDDDD | It specifies the Julian date number |
修饰符1,修饰符2,…修饰符_n:修饰符是可选的。这些与时间字符串一起使用以增加或减少时间,日期或年份。
Index | Modifier | Description |
---|---|---|
1) | [+-]NNN years | It is used to specify number of years added/subtracted to the date |
2) | [+-]NNN months | It is used to specify number of months added/subtracted to the date |
3) | [+-]NNN days | It is used to specify number of days added/subtracted to the date |
4) | [+-]NNN hours | It is used to specify number of hours added/subtracted to the date |
5) | [+-]NNN minutes | It is used to specify number of minutes added/subtracted to the date |
6) | [+-]NNN seconds | It is used to specify number of seconds added/subtracted to the date |
7) | [+-]NNN.NNNN seconds | It is used to specify number of seconds (and fractional seconds) added/subtracted to the date |
8) | start of year | It is used to shift the date back to the start of the year |
9) | start of month | It is used to shift the date back to the start of the month |
10) | start of day | It is used to shift the date back to the start of the day |
11) | weekday N | It is used to move the date forward to the next date where weekday number is N (0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday) |
12) | unixepoch | It is used with the DDDDDDDDDD timestring to interpret the date as UNIX Time (ie: number of seconds since 1970-01-01) |
13) | localtime | It is used to adjust date to localtime, assuming the timestring was expressed in UTC |
14) | utc | It is used to adjust date to utc, assuming the timestring was expressed in localtime |
示例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');
输出: