- SQLite快速入门
- SQLite是什么?
- SQLite历史
- SQLite特性/为什么要使用SQLite?
- SQLite优点和缺点
- SQLite安装
- SQLite命令大全
- SQLite语法大全
- SQLite数据类型
- SQLite运算符
- SQLite表达式
- 数据库和表
- CURD操作
- 子句和条件
- 连接操作
- SQLite时间日期
- 聚合函数
- SQLite触发器
- SQLite主键
- SQLite导出导入
- SQLite连接程序
SQLite strftime()函数日期日间格式化
SQLite strftime()
是一个功能非常强大的函数,可以用来获取日期和时间,并且还可以执行日期计算。
语法:
strftime(format, timestring [, modifier1, modifier2, ... modifier_n ] )
这里,format
可以是以下任何一种:
编号 | 格式 | 解释/描述 |
---|---|---|
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 至 60) |
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 |
指定儒略日的日期数 |
- modifier1, modifier2, … modifier_n: 这些修饰符是可选的。这些字符与时间字符串一起使用来添加或减少时间,日期或年份。
编号 | 修辞符 | 描述 |
---|---|---|
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=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday) |
12 | unixepoch |
它与DDDDDDDDDD 时间字符串一起用于将日期解释为UNIX时间(即:自1970-01-01 以来的秒数) |
13 | localtime |
用于将日期调整为本地时间,假设时间戳以UTC 表示 |
14 | utc |
它用于将日期调整为utc ,假设时间戳以本地时间表达 |
示例1:
检索当前日期:
SELECT strftime('%Y %m %d', 'now'); SELECT strftime('%Y-%m-%d %H:%M', 'now');
执行上面语句,得到以下结果 -
sqlite> SELECT strftime('%Y %m %d', 'now'); 24 sqlite> SELECT strftime('%Y-%m-%d %H:%M', 'now'); 2017-05-24 19:04 sqlite>
示例2:
检索本月的第一天:
SELECT strftime('%Y-%m-%d', '2017-09-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');
执行上面代码,得到以下结果 -
sqlite> SELECT strftime('%Y-%m-%d', '2017-09-14', 'start of month'); 2017-09-01 sqlite> SELECT strftime('%Y-%m-%d', 'now', 'start of month'); 2017-05-01 sqlite> SELECT strftime('%Y-%m-%d', '2017-03-07', '-6 days'); 2017-03-01 sqlite> SELECT strftime('%Y-%m-%d', 'now', '-13 days'); 2017-05-11 sqlite>
示例3:
检索本月的最后一天:
SELECT strftime('%Y-%m-%d', '2017-12-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-08-07', '+24 days'); SELECT strftime('%Y-%m-%d', 'now', '+24 days');
执行上面代码,得到以下结果 -
sqlite> SELECT strftime('%Y-%m-%d', '2017-12-07', 'start of month', '+1 month', '-1 day'); 2017-12-31 sqlite> SELECT strftime('%Y-%m-%d', 'now', 'start of month', '+1 month', '-1 day'); 2017-05-31 sqlite> SELECT strftime('%Y-%m-%d', '2017-08-07', '+24 days'); 2017-08-31 sqlite> SELECT strftime('%Y-%m-%d', 'now', '+24 days'); 2017-06-17 sqlite>
示例4:
在当前日期时间上添加/减去年数和天数:
SELECT strftime('%Y-%m-%d', '2017-11-14', '+2 years'); SELECT strftime('%Y-%m-%d', 'now', '-2 years'); SELECT strftime('%Y-%m-%d', '2017-10-14', '+7 days'); SELECT strftime('%Y-%m-%d', 'now', '-10 days');
执行上面代码,得到以下结果 -
sqlite> SELECT strftime('%Y-%m-%d', '2017-11-14', '+2 years'); 2019-11-14 sqlite> SELECT strftime('%Y-%m-%d', 'now', '-2 years'); 2015-05-24 sqlite> SELECT strftime('%Y-%m-%d', '2017-10-14', '+7 days'); 2017-10-21 sqlite> SELECT strftime('%Y-%m-%d', 'now', '-10 days'); 2017-05-14 sqlite>
下一篇:SQLite time()函数
关注微信小程序
扫描二维码
程序员编程王