📜  SQLite strftime

📅  最后修改于: 2020-11-13 00:44:45             🧑  作者: Mango

SQLite strftime函数

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'); 

输出: