sqlite3 时间函数
sqlite中支持的时间和日期函数共有 5 个:
-
date(timestring, modifier, modifier, …)
-
time(timestring, modifier, modifier, …)
-
datetime(timestring, modifier, modifier, …)
-
julianday(timestring, modifier, modifier, …)
-
strftime(format, timestring, modifier, modifier, …)
上述 5 个函数,都传入时间字符串 timestring 作为参数,后面接 0 到多个modifier 修饰符。 而 strftime 将 format 作为第一个参数,对时间进行重新格式化。
timestring
可以采用以下任何一种格式:
| 序号 | 时间字符串 | 实例 |
|---|---|---|
| 1 | YYYY-MM-DD | 2010-12-30 |
| 2 | YYYY-MM-DD HH:MM | 2010-12-30 12:10 |
| 3 | YYYY-MM-DD HH:MM:SS.SSS | 2010-12-30 12:10:04.100 |
| 4 | MM-DD-YYYY HH:MM | 30-12-2010 12:10 |
| 5 | HH:MM | 12:10 |
| 6 | YYYY-MM-DDTHH:MM | 2010-12-30 12:10 |
| 7 | HH:MM:SS | 12:10:01 |
| 8 | YYYYMMDD HHMMSS | 20101230 121001 |
| 9 | now | 2014-05-07 |
‘T’ 可以作为日期和时间的分隔符
modifier
-
NNN days
-
NNN hours
-
NNN minutes
-
NNN.NNNN seconds
-
NNN months
-
NNN years
-
start of month
-
start of year
-
start of day
-
weekday N
-
unixepoch
-
localtime
-
utc
这些修饰符会按参数从左到右的顺序将时间进行相应的运算。
-
前 6 个修饰符可以对时间进行加减时间段的运算。如 ‘2 days’ 表示在 timestring 的基础上再加 2 天,而 ‘-1 hours’ 表示在前时间的基础上减一个小时。
-
‘start of’ 修饰符将时间转换成当月、当年、当天 有起始时间。如 ‘start of year’ 将时间转换为 ‘2013-01-01 00:00:00’
-
‘weekday N’ 修饰符将当前时间前进到下一个星期N.(周日为星期0,周一为星期1).如今天是1月1日星期3,那么下一个星期4将是1月2日,下一个星期2将是1月8日。
-
‘unixepoch’ 将 10 位数字的unix时间戳转换为相应的时间字符串。
-
‘localtime’ 和 ‘utc’ 将时间在格林威治时间和本地时间之间进行转换
format
格式化字符串,使用’%'进行转义
-
%d 一月中的第几天,01-31
-
%f 带小数部分的秒,SS.SSS
-
%H 小时,00-23
-
%j 一年中的第几天,001-366
-
%J 儒略日数,DDDD.DDDD
-
%m 月,00-12
-
%M 分,00-59
-
%s 从 1970-01-01 算起的秒数
-
%S 秒,00-59
-
%w 一周中的第几天,0-6 (0 is Sunday)
-
%W 一年中的第几周,01-53
-
%Y 年,YYYY
-
%% % symbol