设为首页 收藏本站
查看: 1028|回复: 0

[经验分享] SQLite --函数

[复制链接]

尚未签到

发表于 2016-11-28 11:11:29 | 显示全部楼层 |阅读模式
一、日期和时间函数:原文地址

SQLite主要支持以下四种与日期和时间相关的函数,如:
1). date(timestring, modifier, modifier, ...)
2). time(timestring, modifier, modifier, ...)
3). datetime(timestring, modifier, modifier, ...)
4). strftime(format, timestring, modifier, modifier, ...)
以上所有四个函数都接受一个时间字符串作为参数,其后再跟有0个或多个修改符。其中strftime()函数还接受一个格式字符串作为其第一个参数。strftime()和C运行时库中的同名函数完全相同。至于其他三个函数,date函数的缺省格式为:"YYYY-MM-DD",time函数的缺省格式为:"HH:MM:SS",datetime函数的缺省格式为:"YYYY-MM-DD HH:MM:SS"。 
1. strftime函数的格式信息:

格式说明
%dday of month: 00
%ffractional seconds: SS.SSS
%Hhour: 00-24
%jday of year: 001-366
%JJulian day number
%mmonth: 01-12
%Mminute: 00-59
%sseconds since 1970-01-01
%Sseconds: 00-59
%wday of week 0-6 with Sunday==0
%Wweek of year: 00-53
%Yyear: 0000-9999
%%%

 

需要额外指出的是,其余三个时间函数均可用strftime来表示,如:
date(...) strftime('%Y-%m-%d', ...)
time(...) strftime('%H:%M:%S', ...)
datetime(...) strftime('%Y-%m-%d %H:%M:%S', ...) 

2. 时间字符串的格式:
见如下列表:
1). YYYY-MM-DD
2). YYYY-MM-DD HH:MM
3). YYYY-MM-DD HH:MM:SS
4). YYYY-MM-DD HH:MM:SS.SSS
5). HH:MM
6). HH:MM:SS
7). HH:MM:SS.SSS
8). now
5)7)中只是包含了时间部分,SQLite将假设日期为2000-01-018)表示当前时间。

3. 修改符:
见如下列表:
1). NNN days
2). NNN hours
3). NNN minutes
4). NNN.NNNN seconds
5). NNN months
6). NNN years
7). start of month
8). start of year
9). start of day
10).weekday N 
1)6)将只是简单的加减指定数量的日期或时间值,如果NNN的值为负数,则减,否则加。7)9)则将时间串中的指定日期部分设置到当前月、年或日的开始。10)则将日期前进到下一个星期N,其中星期日为0。注:修改符的顺序极为重要,SQLite将会按照从左到右的顺序依次执行修改符。

二、其它函数
函数说明
avg(x)该函数返回在同一组内参数字段的平均值。对于不能转换为数字值的String和BLOB类型的字段值,如'HELLO',SQLite会将其视为0。avg函数的结果总是浮点型,唯一的例外是所有的字段值均为NULL,那样该函数的结果也为NULL。
count(x|*)  count(x)函数返回在同一组内,x字段中值不等于NULL的行数。count(*)函数返回在同一组内的数据行数。
group_concat(x[,y])该函数返回一个字符串,该字符串将会连接所有非NULL的x值。该函数的y参数将作为每个x值之间的分隔符,如果在调用时忽略该参数,在连接时将使用缺省分隔符","。再有就是各个字符串之间的连接顺序是不确定的。  
max(x)该函数返回同一组内的x字段的最大值,如果该字段的所有值均为NULL,该函数也返回NULL。
min(x)该函数返回同一组内的x字段的最小值,如果该字段的所有值均为NULL,该函数也返回NULL。
sum(x)该函数返回同一组内的x字段值的总和,如果字段值均为NULL,该函数也返回NULL。如果所有的x字段值均为整型或者NULL,该函数返回整型值,否则就返回浮点型数值。最后需要指出的是,如果所有的数据值均为整型,一旦结果超过上限时将会抛出"integer overflow"的异常。
total(x)该函数不属于标准SQL,其功能和sum基本相同,只是计算结果比sum更为合理。比如当所有字段值均为NULL时,和sum不同的是,该函数返回0.0。再有就是该函数始终返回浮点型数值。该函数始终都不会抛出异常。
 
函数说明
abs(X)该函数返回数值参数X的绝对值,如果X为NULL,则返回NULL,如果X为不能转换成数值的字符串,则返回0,如果X值超出Integer的上限,则抛出"Integer Overflow"的异常。
changes()该函数返回最近执行的INSERT、UPDATE和DELETE语句所影响的数据行数。我们也可以通过执行C/C++函数sqlite3_changes()得到相同的结果。
coalesce(X,Y,...)  返回函数参数中第一个非NULL的参数,如果参数都是NULL,则返回NULL。该函数至少2个参数。
ifnull(X,Y)该函数等同于两个参数的coalesce()函数,即返回第一个不为NULL的函数参数,如果两个均为NULL,则返回NULL。
length(X)  如果参数X为字符串,则返回字符的数量,如果为数值,则返回该参数的字符串表示形式的长度,如果为NULL,则返回NULL。
lower(X)返回函数参数X的小写形式,缺省情况下,该函数只能应用于ASCII字符。
ltrim(X[,Y])  如果没有可选参数Y,该函数将移除参数X左侧的所有空格符。如果有参数Y,则移除X左侧的任意在Y中出现的字符。最后返回移除后的字符串。
max(X,Y,...)返回函数参数中的最大值,如果有任何一个参数为NULL,则返回NULL。
min(X,Y,...)返回函数参数中的最小值,如果有任何一个参数为NULL,则返回NULL。
nullif(X,Y)如果函数参数相同,返回NULL,否则返回第一个参数。  
random()  返回整型的伪随机数。
replace(X,Y,Z)  将字符串类型的函数参数X中所有子字符串Y替换为字符串Z,最后返回替换后的字符串,源字符串X保持不变。
round(X[,Y])返回数值参数X被四舍五入到Y刻度的值,如果参数Y不存在,缺省参数值为0。  
rtrim(X[,Y])  如果没有可选参数Y,该函数将移除参数X右侧的所有空格符。如果有参数Y,则移除X右侧的任意在Y中出现的字符。最后返回移除后的字符串。
substr(X,Y[,Z])返回函数参数X的子字符串,从第Y位开始(X中的第一个字符位置为1)截取Z长度的字符,如果忽略Z参数,则取第Y个字符后面的所有字符。如果Z的值为负数,则从第Y位开始,向左截取abs(Z)个字符。如果Y值为负数,则从X字符串的尾部开始计数到第abs(Y)的位置开始。 
total_changes()该函数返回自从该连接被打开时起,INSERT、UPDATE和DELETE语句总共影响的行数。我们也可以通过C/C++接口函数sqlite3_total_changes()得到相同的结果。
trim(x[,y])如果没有可选参数Y,该函数将移除参数X两侧的所有空格符。如果有参数Y,则移除X两侧的任意在Y中出现的字符。最后返回移除后的字符串。
upper(X)返回函数参数X的大写形式,缺省情况下,该函数只能应用于ASCII字符。
typeof(X)返回函数参数数据类型的字符串表示形式,如"Integer、text、real、null"等。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-306654-1-1.html 上篇帖子: SQLITE相关技术网址 下篇帖子: sqlite笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表