
SQLite 是一个实现了 small, fast, self-contained, high-reliability, full-featured 的 C 语言库 的 SQL 数据库引擎。SQLite 是世界上使用最广泛的数据库引擎。SQLite 内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。
SELECT date('now'); -->结果:2018-05-05
SELECT time('now'); -->结果:06:55:38
SELECT datetime('now'); -->结果:2018-05-05 06:55:38
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now'); -->结果:2018-05-05 06:55:38
select strftime('%s','now'); -->结果:1525502284
select strftime('%s','2018-05-05'); -->结果:1525478400
select datetime(1525502284, 'unixepoch', 'localtime'); -->结果:2018-05-05 14:38:04
--对参数不理解可参考文末“修饰符”
HH:MM:SS 格式返回时间YYYY-MM-DD HH:MM:SS 格式返回日期时间date(…) –> strftime('%Y-%m-%d',…)
time(…) –> strftime('%H:%M:%S',…)
datetime(…) –> strftime('%Y-%m-%d %H:%M:%S',…)
julianday(…) –> strftime('%J',…)
| 序号 | 日期时间字符串 | 实例 |
|---|---|---|
| 1 | YYYY-MM-DD | 2018-05-05 |
| 2 | YYYY-MM-DD HH:MM | 2018-05-05 12:10 |
| 3 | YYYY-MM-DD HH:MM:SS.SSS |
2018-05-05 15:39:20.100 |
| 4 | MM-DD-YYYY HH:MM | 05-05-2018 12:10 |
| 5 | HH:MM | 同理 |
| 6 | YYYY-MM-DDTHH:MM | 同理 |
| 7 | HH:MM:SS |
同理 |
| 8 | YYYYMMDD HHMMSS | 同理 |
| 9 | now | 2018-05-05 15:39:20 |
| 10 | DDDDDDDDDD | 1525478400(时间戳) |
| 符号 | 描述 |
|---|---|
| %d | 一月中的第几天 01-31 |
| %f | 小数形式的秒,SS.SSSS |
| %H | 小时 00-24 |
| %j | 一年中的第几天 01-366 |
| %J | Julian Day Numbers |
| %m | 月份 01-12 |
| %M | 分钟 00-59 |
| %s | 从 1970-01-01日开始计算的秒数 |
| %S | 秒 00-59 |
| %w | 星期,0-6,0是星期天 |
| %W | 一年中的第几周 00-53 |
| %Y | 年份 0000-9999 |
| %% | % 百分号 |
| 序号 | 符号 | 作用 |
|---|---|---|
| 1 | [+-]NNN years | 增加/减去指定数值的年 |
| 2 | [+-]NNN months | 增加/减去指定数值的月 |
| 3 | [+-]NNN days | 增加/减去指定数值的天 |
| 4 | [+-]NNN hours | 增加/减去指定数值的小时 |
| 5 | [+-]NNN minutes | 增加/减去指定数值的分钟 |
| 6 | [+-]NNN.NNNN seconds | 增加/减去指定数值的秒 |
| 7 | start of year | 当前日期的开始年 |
| 8 | start of month | 当前日期的开始月 |
| 9 | start of day | 当前日期的开始日 |
| 11 | weekday N | 表示返回下一个星期是N的日期和时间 |
| 12 | unixepoch | 用于将日期解释为UNIX时间(即:自1970-01-01以来的秒数,也就是时间戳) |
| 13 | localtime | 表示返回本地时间 |
| 14 | utc | 表示返回UTC(世界统一时间)时间 |
SELECT datetime('now'); -->结果:2018-05-05 08:10:26(和本机时间可能不一致,时区问题请看使用‘localtime’修饰符后的变化)
SELECT datetime('now','1 years');-->结果:2019-05-05 08:10:26
SELECT datetime('now','1 months');-->结果:2018-06-05 08:10:26
SELECT datetime('now','1 days');-->结果:2018-05-06 08:10:26
SELECT datetime('now','1 hours');-->结果:2018-05-05 09:10:26
SELECT datetime('now','1 minutes');-->结果:2018-05-05 08:11:26
SELECT datetime('now','1 seconds');-->结果:2018-05-05 08:10:27
SELECT datetime('now','start of year');-->结果:2018-01-01 00:00:00
SELECT datetime('now','start of month');-->结果:2018-05-01 00:00:00
SELECT datetime('now','start of day');-->结果:2018-05-05 00:00:00
SELECT datetime('now','weekday 0');-->结果:2018-05-06 08:10:26
(解释:2018-05-05是周六,'weekday 0'表示返回下周的周日(系统默认以周日为一周的开始0),明天06号是周日,所以,返回了2018-05-06)
SELECT datetime('1525478400','unixepoch');-->结果:2018-05-05 00:00:00(unixepoch一般用于解释时间戳)
SELECT datetime('now','localtime');-->结果:2018-05-05 16:10:26(你会发现这个时间比没使用‘localtime’参数的时间多了8个小时,因为中国是东八时区)
SELECT datetime('now','utc');-->结果:2018-05-05 00:10:26(时区问题)