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');