您的位置:首页 > 移动开发 > Android开发

android 数据库 sqlite数据类型(时间 日期 double等)

2016-04-14 16:28 405 查看
sqlite3支持的数据类型:

NULL、INTEGER、REAL、TEXT、BLOB

但是,sqlite3也支持如下的数据类型

smallint 16位整数

integer 32位整数

decimal(p,s) p是精确值,s是小数位数

float 32位实数

double 64位实数

char(n) n长度字符串,不能超过254

varchar(n) 长度不固定最大字符串长度为n,n不超过4000

graphic(n) 和 char(n) 一样,但是单位是两个字符double-bytes,n不超过127(中文字)

vargraphic(n) 可变长度且最大长度为n

date 包含了年份、月份、日期

time 包含了小时、分钟、秒

timestamp 包含了年、月、日、时、分、秒、千分之一秒

sqlite3支持的函数

【1】日期函数

datetime() : 产生日期和时间

date(): 产生日期

time():产生时间

strftime():对以上3个函数产生的日期和时间进行格式化

用法实例:

1、SELECT date('2011-9-9','+1 day','+1 year'); 结果是 2010-09-10

2、SELECT datetime('now'); 当前日期和时间

3、SELECT datetime('now', 'start of month'); 本月的第一天零点,也可以设置年和日的第一天

4、SELECT datetime('now','+1 hour','-12 minute'); 当前时间加48分钟

strftime()函数可以将YYYY-MM-DD HH:MM:SS格式的日期字符串转换为其它形式的字符串

%d:天数,01-31

%f :小数形式的秒,SS.SSS

%H:小时

%j :某一天是该年的第几天,001-366

%m:月份,00-12

%M:分钟,00-59

%s:从1970到现在的秒数

%S:秒,00-59

%w:星期,0-6,0是星期天

%W:某天是该年的第几周,01-53

%Y:年,YYYY

%% 百分号

应用举例:

SELECT strftime('%Y.%m.%d %H:%M:%S','now','localtime');


二、【算术函数】



abs(X):返回绝对值

max(X,Y[,...]):返回最大值

min(X,Y,[,...]):返回最小值

random(*):返回随机数

round(X[,Y]): 四舍五入

三、【字符串处理函数】



length(x) :返回字符串字符个数

lower(x) :大写转小写

upper(x):小写转大写

substr(x,y,Z):截取子串

like(A,B):确定给定的字符串与指定的模式是否匹配

四、【条件判断函数、集合函数、其它函数】



typeof(x):返回数据的类型

last_insert_rowid():返回最后插入的数据的ID

********************************************************************************************************************

sqlite3提供了C函数接口来操作sqlite3数据库,其中有个关键数据结构 sqlite3 * 类型
1、打开数据库

int sqlite3_open(文件名,sqlite3 **); -
文件名若不存在,则会自动创建

返回SQLITE_OK表示操作正常,这些宏的定义在sqlite3.h文件中定义,看源代码会懂的更多

2、关闭数据库

int sqlite3_close(sqlite3 *);

3、SQL语句操作

int sqlite3_exec(sqlite3 *,const char *sql, sqlite3_callback,void *,char **errmsg);

这就是执行一条sql语句的函数

参数1:open函数得到的指针

参数2:一条sql语句,以'\0'结尾

参数3:sqlite3_callback是回调,当这条语句执行后,sqlite3会调用你提供的这个函数,回调函数要查阅资料

参数4:void *是自己提供的指针,可以传递任何指针到这里,这个参数最终会传到回调函数里面,如果不需要

传到回调函数里面,则可以设置为NULL

参数5:错误信息,当执行失败时,可以查阅这个指针,可以利用printf("%s\n",errmsg)得到一串字符串信息,

该信息表明出错的地方

通常,sqlite3_callback和void *都设置为NULL,表示不需要回调,比如做insert、delete操作,就没有必要使用回调,而当使用select时,就要使用回调,因为sqlite3把数据查出来,得通过回调来说明查出什么数据

转自http://blog.csdn.net/xiaomt_rush/article/details/6766482
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: