android sqlite支持的数据类型

Sqlite3支持的数据类型 :NULL、INTEGER、REAL、TEXT、BLOB
 但实际上,sqlite3也接受如下的数据类型:
    smallint 16 位元的整数。
    interger 32 位元的整数。
    decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为 p=5; s=0 。
    float  32位元的实数。
    double  64位元的实数。
    char(n)  n 长度的字串,n不能超过 254。
    varchar(n) 长度不固定且其最大长度为 n 的字串,n不能超过 4000。
    graphic(n) 和 char(n) 一样,不过其单位是两个字元 double-bytes, n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。
    vargraphic(n) 可变长度且其最大长度为 n 的双字元字串,n不能超过 2000
    date  包含了 年份、月份、日期。
    time  包含了 小时、分钟、秒。
    timestamp 包含了 年、月、日、时、分、秒、千分之一秒。

SQLite包含了如下时间/日期函数:
datetime().......................产生日期和时间
date()...........................产生日期
time()...........................产生时间
strftime().......................对以上三个函数产生的日期和时间进行格式化

datetime()的用法是:datetime(日期/时间,修正符,修正符...)
date()和time()的语法与datetime()相同。

在时间/日期函数里可以使用如下格式的字符串作为参数:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
其中now是产生现在的时间。

举例(写这个笔记的时间是2006年10月17日晚8点到10点,测试环境:SQLite 2.8.17,WinXP,北京时间):

例1.select datetime(‘now‘);
结果:2006-10-17 12:55:54

例2.select datetime(‘2006-10-17‘);
结果:2006-10-17 12:00:00

例3.select datetime(‘2006-10-17 00:20:00‘,‘+1 hour‘,‘-12 minute‘);
结果:2006-10-17 01:08:00

例4.select date(‘2006-10-17‘,‘+1 day‘,‘+1 year‘);
结果:2007-10-18

例5.select datetime(‘now‘,‘start of year‘);
结果:2006-01-01 00:00:00

例6.select datetime(‘now‘,‘start of month‘);
结果:2006-10-01 00:00:00

例7.select datetime(‘now‘,‘start of day‘);
结果:2006-10-17 00:00:00

例8.select datetime(‘now‘,‘+10 hour‘,‘start of day‘,‘+10 hour‘);
结果:2006-10-17 10:00:00

例9.select datetime(‘now‘,‘localtime‘);
结果:2006-10-17 21:21:47

例10.select datetime(‘now‘,‘+8 hour‘);
结果:2006-10-17 21:24:45

例3中的+1 hour和-12 minute表示可以在基本时间上(datetime函数的第一个参数)增加或减少一定时间。

例5中的start of year表示一年开始的时间。

从例8可以看出,尽管第2个参数加上了10个小时,但是却被第3个参数“start of day”把时间归零到00:00:00,随后的第4个参数在00:00:00
的基础上把时间增加了10个小时变成了10:00:00。

例9把格林威治时区转换成本地时区。

例10把格林威治时区转换成东八区。

strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。
strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, ...)

它可以用以下的符号对日期和时间进行格式化:
%d 月份, 01-31
%f 小数形式的秒,SS.SSS
%H 小时, 00-23
%j 算出某一天是该年的第几天,001-366
%m 月份,00-12
%M 分钟, 00-59
%s 从1970年1月1日到现在的秒数
%S 秒, 00-59
%w 星期, 0-6 (0是星期天)
%W 算出某一天属于该年的第几周, 01-53
%Y 年, YYYY
%% 百分号

strftime()的用法举例如下:

例11.select strftime(‘%Y.%m.%d %H:%M:%S‘,‘now‘,‘localtime‘);
结果:2006.10.17 21:41:09

sqlite函数篇:
算术函数 
abs(X) 返回给定数字表达式的绝对值。 
max(X,Y[,...]) 返回表达式的最大值。 
min(X,Y[,...]) 返回表达式的最小值。 
random(*) 返回随机数。 
round(X[,Y]) 返回数字表达式并四舍五入为指定的长度或精度。 
字符处理函数 
length(X) 返回给定字符串表达式的字符个数。 
lower(X) 将大写字符数据转换为小写字符数据后返回字符表达式。 
upper(X) 返回将小写字符数据转换为大写的字符表达式。 
substr(X,Y,Z) 返回表达式的一部分。 
randstr()  
quote(A)  
like(A,B) 确定给定的字符串是否与指定的模式匹配。 
glob(A,B)  
条件判断函数 
coalesce(X,Y[,...])  
ifnull(X,Y)  
nullif(X,Y)  
集合函数 
avg(X) 返回组中值的平均值。 
count(X) 返回组中项目的数量。 
max(X) 返回组中值的最大值。 
min(X) 返回组中值的最小值。 
sum(X) 返回表达式中所有值的和。 
其他函数 
typeof(X) 返回数据的类型。 
last_insert_rowid() 返回最后插入的数据的ID。 
sqlite_version(*) 返回SQLite的版本。 
change_count() 返回受上一语句影响的行数。 
last_statement_change_count()

时间: 2024-11-17 03:30:04

android sqlite支持的数据类型的相关文章

SQLite支持那些数据类型

http://forlong401.com/?p=1317 http://androidren.com/index.php?qa=300&qa_1=sqlite%E6%94%AF%E6%8C%81%E9%82%A3%E4%BA%9B%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B 由于SQLite采用的是动态数据类型,而其他传统的关系型数据库使用的是静态数据类型.所以如果想知道SQLite支持那些数据类型,需要先弄清楚:动态数据类型和静态数据类型的区别. 动态数据类型:数

Android SQLite数据库操作示例

SQLite介绍 SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能.此外,它还是开源的,任何人都可以使用它. SQLite由以下几个组件组成:SQL编译器.内核.后端以及附件.SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试.修改和扩展SQLite的内核变得更加方便. SQLite支持的数据类型参考链接:http://blog.csdn.net/wzy_1988/article/details/36005947 Android在运行时(

Android SQLite总结(一)

前言 对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取.下面就向大家介绍一下SQLite常用的操作方法.本篇文章主要用到SQLiteDatabase的一些函数.废话少说,直接贴代码!由于数据库中操作的对象时Student类,因此我们看一下Student.java代码: [java]   view plain copy <EMBED id=ZeroClipboardMovie_1 name=ZeroClipboardMovie_1 ty

Android SQLite数据库基本操作

程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能.而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库.那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一些需求的吧,仍然以一个小例子开始: 在创建Android项目之前,我们应该想一下我们要定义的数据库的相关信息和里面的表格的相关信息,为了日后数据库的更新更加方便 ,我们可以用一个专门的类保存数据库的相关信息,以后如果要更新数据库的话只需要该动这个类

Android SQLite总结(一) (转)

Android SQLite总结(一)  郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取.下面就向大家介绍一下SQLite常用的操作方法.本篇文章主要用到SQLiteDatabase的一些函数.废话少说,直接贴代码!由于数据库中操作的对象时Student类,因此我们看一下St

Android SQLite (三 ) 全面详解(一)

官网 SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中.目前在很多嵌入式产品中使用了它,它占用资源非常 的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix/Android/IOS等等主流的操作系统,同 时能够跟很多程序语言相结合,比如 Tcl.C#.PHP.Java等,还有ODBC接口,同样比起Mysql.PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度 比他们都快. Sqli

SQLite剖析之数据类型

许多SQL数据库引擎(除SQLite之外的各种SQL数据库引擎)使用静态.严格的数据类型.对于静态类型,一个值的数据类型由它的容器,即存储这个值的列来决定.SQLite则使用更加通用的动态类型系统.在SQLite中,一个值的数据类型被关联到这个值本身,而不是它的容器.SQLite的动态类型系统向后兼容一般静态类型系统的数据库引擎.在某种意义上,工作在静态类型数据库上的SQL声明也同样能工作在SQLite上.但是SQLite动态类型还允许做一些在传统严格类型的数据库中不能做的事情. 一.存储类别及

Android SQLite使用

1. SQLite 1.1 SQLite介绍 SQLite是一款轻型的数据库, 是遵守ACID的关系型数据库管理系统, Android系统已经在框架中适配接口供用户使用. 1.2 SQLite数据类型 SQLite采用的是动态数据类型, 会根据存入值自动判断.SQLite具有以下五种常用的数据类型: 存储类 描述 NULL NULL 值 INTEGER 带符号的整数,根据值的大小存储在 1.2.3.4.6 或 8 字节中 REAL 浮点值,存储为 8 字节的 IEEE 浮点数字 TEXT 文本字

[转]SQLite支持字段类型及建表

转自:http://boonya.iteye.com/blog/2118252 一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断. SQLite具有以下五种数据类型: 1.NULL:空值. 2.INTEGER:带符号的整型,具体取决有存入数字的范围大小. 3.REAL:浮点数字,存储为8-byte IEEE浮点数. 4.TEXT:字符串文本. 5.BLOB:二进制对象. 但实际上,sqlite3也接受如下的数据类型: smallint 16 位元的整数.