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-01-01 以来的秒数
%f 秒的小数部分(SS.SSS)
%j 一年中的哪一天(001 到 366)
%J 儒略日作为数值

在这里,时间字符串是一个日期值,可以是以下任何一项:

时间字符串 描述
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 它指定儒略日期编号

modifier1, modifier2, ... 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');   

输出结果:

热门文章

优秀文章