abs(X) 返回參數X的絕對值
ifnull(X,Y) 返回第一個非空參數的副本。若兩個參數均為NULL,返回NULL。
last_insert_rowid() 返回當前數據庫連接最后插入行的RowID。
length(X) 返回X的長度,以字符計。
lower(X) 返回X字符串的所有字符小寫化版本。
max(X,Y) 返回最大值。
nullif(X,Y) 當兩參數不同時返回X,否則返回NULL。
quote(X) 返回參數的適於插入其他SQL語句中的值。字符串會被添加單引號。
random(*) 返回介於-231和231之間的隨機整數。
round(X)或round(X,Y) 將X四舍五入,保留小數點后Y位。若忽略Y參數,則默認其為0。
sqlite_version(*) 返回所運行的SQLite庫的版本號字符串。
substr(X,Y,Z) 返回輸入字符串X中以第Y個字符開始,Z個字符長的子串。X最左端的字符序號為1。若Y為負,則從右至左數起。
typeof(X) 返回表達式X的類型。
upper(X) 返回X字符串的所有字符大寫化版本。
在單參數聚集函數中,參數可以加前綴distinct。這時重復參數會被過濾掉,然后才傳入到函數中。例如,函數count(distinct X)返回字段X的不重復非空值的個數,而不是字段X的全部非空值。
avg(X) 返回一組中非空的X的平均值。非數字值作0處理。結果總是一個浮點數。
count(X) 返回一組中X是非空值的次數。
count(*) 返回該組中的行數。
change_count() 返回受上一語句影響的行數。
max(X) 返回一組中的最大值。
min(X) 返回一組中的最小值。
sum(X)和total(X) 返回一組中所有非空值的數字和。若沒有非空行,sum()返回null而total()返回0.0。total()的返回值為浮點數,sum()可以為整數。
date(日期時間字符串,修正符,修正符,……) 返回一個以YYYY-MM-DD為格式的日期。
time(日期時間字符串,修正符,修正符,……) 返回一個以HH:MM:SS 為格式的日期時間。
datetime(日期時間字符串,修正符,修正符,……) 返回一個以YYYY-MM-DD HH:MM:SS 為格式的日期時間。
julianday(日期時間字符串,修正符,修正符,……) 返回一個天數,從格林威治時間公元前4714年11月24號開始算起。
strftime(日期時間格式,日期時間字符串,修正符,修正符,……) 返回一個經過格式化的日期時間,它可以用以下的符號對日期和時間進行格式化:
%d一月中的第幾天,01-31
%f小數形式的秒,SS.SSSS
%H小時,00-24
%j一年中的第幾天,01-366
%JJulian Day Numbers
%m月份,01-12
%M分鍾,00-59
%s從1970-01-01日開始計算的秒數
%S秒,00-59
%w星期,0-6
%W一年中的第幾周,00-53
%Y年份,0000-9999
%%%,百分號
其他四個函數都可以用strftime()函數來表示:
date(……)strftime('%Y-%m-%d',……)
time(……)strftime('%H:%M:%S',……)
datetime(……)strftime('%Y-%m-%d %H:%M:%S',……)
julianday(……)strftime('%J',……)
日期時間字符串,可以用以下幾種格式:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM(T是一個分割日期和時間的字符)
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now(返回一個當前的日期和時間,使用格林威治時間UTC)
DDDD.DDDD
日期和時間可以使用下面的修正符來更改日期或時間:
(1)增加指定數值的日期和時間
NNN days
NNN hours
NNN minutes
NNN.NNNN seconds
NNN months
NNN years
(2)返回當前日期的開始
start of month
start of year
start of week
start of day
(3)返回下一個星期是N的日期和時間
weekday N
(4)返回從1970-01-01開始算起的秒數
unixepoch
(5)返回本地時間
localtime
例子:
計算機當前時間:date('now')
計算機當前月份的最后一天:date('now','start of month','+1 month','-1 day')
計算UNIX時間戳1092941466表示的日期和時間:datetime('1092941466','unixepoch')
計算UNIX時間戳1092941466表示的本地日期和時間:datetime('1092941466','unixepoch','localtime')
計算機當前UNIX時間戳:strftime('%s','now')
兩個日期之間相差多少天:julianday('now')-julianday('1981-12-23')
兩個日期時間之間相差多少秒:julianday('now')*86400-juianday('2004-01-01 02:34:45')*86400
計算今年十月份第一人星期二的日期:date('now','start of year','+9 months','weekday 2')