SQLite教程(内置日期和时间函数),sqlite教程
SQLite数据库
1. 简介:
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。
2. 字段类型:
更多其他数据库(例如MYSQL)中字段类型对应SQLite的类型,请参考SQlite类型官方介绍,看不懂英文的小伙伴,请看中文翻译的SQLite中数据类型。
3. SQLite的增删查改操作及事务:
SQLite的增删查改操作比较常见,事务使用也比较常见,这里不多做介绍。更多具体详情,SQLite教程的增删查改.
4. SQLite特殊数据存储(重点):
SQLite 内置的日期 & 时间函数
SQLite 支持以下五个日期和时间函数,如:
date(timestring, modifier, modifier, ...) : 返回YYYY-MM-DD 格式的日期
time(timestring, modifier, modifier, ...) : 返回 HH:MM:SS格式的时间
datetime(timestring, modifier, modifier, ...) 返回YYYY-MM-DD HH:MM:SS格式的日期时间
julianday(timestring, modifier, modifier, ...): 返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数
strftime(format, timestring, modifier, modifier, ...) :返回指定格式(即第一个参数)的日期
上述五个日期和时间函数把时间字符串(TimeString)作为参数。时间字符串后跟零个或多个 modifier 修饰符。strftime() 函数也可以把格式字符串 format 作为其第一个参数。
注意点:以上几个函数也可以转换成strftime函数,如下:
date(...) strftime('%Y-%m-%d', ...)
time(...) strftime('%H:%M:%S', ...)
datetime(...) strftime('%Y-%m-%d %H:%M:%S', ...)
julianday(...) strftime('%J', ...)
下面将详细讲解函数中的不同类型的时间字符串和修饰符,格式。
格式 格式说明
%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
SQLite案例之使用时间和日期函数:
在Android SDK中的tools文件下找到Sqlite.exe或者SQLite下载进行下载获取。使用Sqlite3.exe来运行sql语句。
案例1:获取YYYY-MM-DD格式的当前日期,例如 2017-4-9
分析:
1. 采用date()函数返回YYYY-MM-DD格式的日期
2. 采用时间字符串now来指定当前时间
因此,此SQL语句为:SELECT date('now');
案例2:获取当前月的最后一天,例如2017-4-30
分析:
1. 采用date()函数返回YYYY-MM-DD格式的日期
2. 采用时间字符串(now)来指定当前时间,这时日期为 :当年-当月-当日
3. 使用修饰符(start of month)设置时间为当月,在这时日期为:当年-当月-1日
4. 添加一个月,即修饰符(1 month),在这时日期为:当年-(当月+1)-1日
5. 减去一天,即修饰符(- 1 day),获取到当月最后一天,在这时日期为:当年-当月-最大天数
因此,此SQL语句为:SELECT date('now','start of month','+1 month','-1 day');
案例3:返回从1970-01-01 00:00:00到当前时间所流经的秒数
分析:
1. 采用strftime()函数
2. 采用秒的格式,%s
3. 指定时间字符串(now)
因此,此SQL语句为:SELECT strftime('%s','now');
案例4:计算从 2004 年某一特定时刻以来的秒数
分析:
1. 计算到2004-01-01 02:34:56的秒速
2. 计算到当今的秒数
3. 两者相减操作。
因此,此SQL语句为:SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
SQLite.exe执行sql,输出结果如下:
资源参考:
- SQLite官网: http://www.sqlite.org/docs.html
- SQLite中文网: http://www.runoob.com/sqlite/sqlite-tutorial.html
- SQLite学习手册: http://www.cnblogs.com/stephen-liu74/archive/2012/01/22/2328757.html