select strfime('%Y-%m-%d %H:%M:%S','now','localtime');
结果:2011-10-15 22:16:23
select strftime('%s','now','localtime');
结果:1318717087
select date('now');//2011-10-15
select date();//2011-10-15
select time();15:04:27
select time('now');15:04:27 少八个小时
select current_date;
select current_time;
select current_timestamp;
select datetime();//2011-10-15 14:23:23 和北京时间差8个小时
select datetime('now','localtime');//2011-10-15 22:24:18 正确时间
select datetime('2011-01-01');
2011-01-01 00:00:00
select datetime('2011-01-01 12:12:12');
2011-01-01 12:12:12
select datetime('2011-01-01 12:12:12','+8 hour');
2011-01-01 20:12:12
select datetime('2011-01-01 12:12:12','+1 day','-1 year');
2010-01-02 12:12:12
算术函数
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()
create table student
(
id integer PRIMARY KEY,
name varchar(30) not null,
content text,
money numeric(5,2),
birthday datetime default CURRENT_DATE
);
create table student
(
id integer PRIMARY KEY,
name varchar(30) not null,
content text,
money numeric(5,2),
birthday datetime default CURRENT_TIMESTAMP
);
insert into student(name,content,money) values('a','bb',20.9);
select * from student;
create INDEX stuname on student(name desc,content asc)
随机读取二条记录
select * from student order by random() limit 2;
select strftime('%Y-%m-%d %H:%M:%S','now','localtime');
select datetime('now','localtime');
2011-10-12 23:46:40
简单示例:
SELECT * FROM [pepole] WHERE strftime('%Y-%m-%d',[date])>date('2011-01-15')
SELECT * FROM [pepole] WHERE strftime('%Y-%m-%d',[date])>=date('now','Localtime')
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
常用的查询语句
select * from 表 where 日期字段>datetime('now','localtime');
结果:2011-10-15 22:16:23
select strftime('%s','now','localtime');
结果:1318717087
select date('now');//2011-10-15
select date();//2011-10-15
select time();15:04:27
select time('now');15:04:27 少八个小时
select current_date;
select current_time;
select current_timestamp;
select datetime();//2011-10-15 14:23:23 和北京时间差8个小时
select datetime('now','localtime');//2011-10-15 22:24:18 正确时间
select datetime('2011-01-01');
2011-01-01 00:00:00
select datetime('2011-01-01 12:12:12');
2011-01-01 12:12:12
select datetime('2011-01-01 12:12:12','+8 hour');
2011-01-01 20:12:12
select datetime('2011-01-01 12:12:12','+1 day','-1 year');
2010-01-02 12:12:12
算术函数
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()
create table student
(
id integer PRIMARY KEY,
name varchar(30) not null,
content text,
money numeric(5,2),
birthday datetime default CURRENT_DATE
);
create table student
(
id integer PRIMARY KEY,
name varchar(30) not null,
content text,
money numeric(5,2),
birthday datetime default CURRENT_TIMESTAMP
);
insert into student(name,content,money) values('a','bb',20.9);
select * from student;
create INDEX stuname on student(name desc,content asc)
随机读取二条记录
select * from student order by random() limit 2;
select strftime('%Y-%m-%d %H:%M:%S','now','localtime');
select datetime('now','localtime');
2011-10-12 23:46:40
简单示例:
SELECT * FROM [pepole] WHERE strftime('%Y-%m-%d',[date])>date('2011-01-15')
SELECT * FROM [pepole] WHERE strftime('%Y-%m-%d',[date])>=date('now','Localtime')
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
常用的查询语句
select * from 表 where 日期字段>datetime('now','localtime');