欢迎投稿

今日深度:

SQLite教程(内置日期和时间函数),sqlite教程

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, ...): 返回从格林尼治时间的公元前 47141124 日正午算起的天数

 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

www.htsjk.Com true http://www.htsjk.com/SQLite/25904.html NewsArticle SQLite教程(内置日期和时间函数),sqlite教程 SQLite数据库 1. 简介: SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 2. 字段类型: 更多其...
相关文章
    暂无相关文章
评论暂时关闭