可以看到,cast(100 as char(2))将整数数据100转换为带有2个显示宽度的字符串类型,结果为10

  1. 数学函数 , 有错误产生时,数学函数将会返回空值null
    绝对值函数 abs(x),圆周率函数 pi(),平方根函数  sqrt(x),求余函数 mod(x,y)【返回x被y除后的余数】
    获取整数的函数: ceil(x)、ceiling(x)【ceil和ceiling意义相同,返回不小于x的最小整数值,返回值转化为一个bigint】,floor(x)【返回不大于x的最大整数值,返回值转化为一个bigint】;
    获取随机数的函数:rand()和rand(x)【rand(x)返回一个随机浮点值v,返回在0到1之间。若已指定一个整数参数x,则它用作种子值,用来产生重复序列,即rand(10)=rand(10)】;
    四舍五入函数round(x)返回最接近于参数x的整数,对x值进行四舍五入,round(x,y)返回最接近于参数x的数,其值保留到小数点后面y位,若y为负值,则将保留x值到小数点左边y位【y为负数时,保留的小数点左边的相应位数直接保存为0,不进行四舍五入】;
    truncate(x,y)返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分,若y为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。【round(x,y)截取值会四舍五入,而truncate(x,y)直接截取,并不进行四舍五入】;
    符号函数:sign(x)返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1;
    幂运算函数:pow(x,y)或者power(x,y)函数返回x的y次乘方的结果值,exp(x)返回e的x乘方后的值;
    对数运算函数:log(x)返回x的自然对数,log10(x)返回x的基数为10的对数
    角度与弧度相互转换的函数:radians(x)【radians中文即为弧度】将参数x由角度转换为弧度,degrees(x)【degrees中文即为角度】将参数x由弧度转换为角度
    正弦函数sin(x)【x为弧度】和反正弦函数asin(x)【返回x的反正弦,即正弦为x的值】
    余弦函数cos(x)【x为弧度】和反余弦函数acos(x)【返回x的反余弦,即余弦为x的值】
    正切函数tan(x)【x为弧度】和反正切函数atan(x)【返回x的反正切,即余正切为x的值】
    余切函数cot(x)【x为弧度】函数cot和tan互为倒函数(即cot(x)*tan(x)=1)
  2. 字符串函数
    计算字符串字符数的函数和字符串长度的函数:char_length(str)返回值为字符串str所包含的字符个数,一个多字节字符算作一个单字符;length(str)返回值为字符串的字节长度,使用utf8编码字符集时,一个汉字是3个字节,一个数字或字母算一个字节。
    合并字符串函数concat(s1,s2,...)、concat_ws(x,s1,s2,...):concat(s1,s2,...)返回结果为连接参数产生的字符串,或许有一个参数或多个参数,若有一个参数为null,则返回值为null;concat_ws(x,s1,s2,...),concat_ws代表concat with separator,是concat()的特殊形式,第一个参数x是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其他参数,如果分隔符为null,则结果为null。函数会忽略任何分隔符参数后的null值。
    替换字符串的函数insert(s1,x,len,s2):insert(s1,x,len,s2)返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符。如果x超过字符串长度,则返回值为原始字符串。假如len的长度大于其他字符串的长度,则从位置x开始替换。若任何一个参数为null,则返回值为null。
      
    第一个函数insert('Quest',2,4,'What')将'Quest'第2个字符开始长度为4的字符串替换为'What';第二个和第三个函数起始位置超过字符串长度,直接返回原字符串;第四个函数insert('Quest',3,100,'What')替换长度超出了原字符串长度,则从第三个字符开始,截取后面所有的字符,并替换成指定字符What。
    字母大小写转换函数:lower(str)或者lcase(str)可以将字符串str中的字母字符全部转换成小写字母;upper(str)或者ucase(str)可以将字符串str中的字母字符全部转换成大写字母。
    获取指定长度的字符串的函数left(s,n)和right(s,n):left(s,n)返回字符串s开始的最左边n个字符,right(s,n)返回字符串str最右边n个字符。
    填充字符串的函数lpad(s1,len,s2)和rpad(s1,len,s2):lpad(s1,len,s2)返回字符串s1,其左边由字符串s2填充到len字符长度。假如s1长度大于len,则返回值被缩短至len字符;rpad(s1,len,s2)返回字符串s1,其右边被字符串s2填补至len字符长度。假如字符串s1的长度大于len,则返回值被缩短到len字符长度。

    删除空格的函数ltrim(s),rtrim(s)和trim(s):ltrim(s)返回字符串s,字符串左侧空格字符将被删除,rtirm(s)返回字符串s,字符串右侧空格字符将被删除,trim(s)删除字符串s两侧的空格
    删除指定字符串的函数trim(s1 from s):trim(s1 from s)删除字符串s中两端所有的子字符串s1.s1为可选项,在未指定情况下,删除空格。
    重复生成字符串的函数repeat(s,n):repeat(s,n)返回一个由重复的字符串s组成的字符串,字符串s的数目等于n。若n<=0,则返回一个空字符串。若s或n为null,则返回null。
    空格函数space(n)和替换函数replace(s,s1,s2):space(n)返回一个由n个空格组成的字符串;replace(s,s1,s2)使用字符串s2替换字符串s中所有的字符串s1。
    比较字符串大小的函数strcmp(s1,s2):strcmp(s1,s2)若所有的字符串均相同,则返回0;若根据当前分类次序,第一参数小于第二个,则返回-1,其他情况返回1。
    获取子串的函数substring(s,n,len)和mid(s,n,len)【mid(s,n,len)和substring(s,n,len)的作用相同】:substring(s,n,len)带有len参数的格式,从字符串s返回一个长度同len字符相同的字符相同的子字符串,起始于位置n。也可能对n使用一个赋负值,假如这样,则子字符串的起始于字符串结尾的n字符,即倒数第n个字符。【如果对len使用的是一个小于1的值,则结果始终为空字符串】
    匹配子串开始位置的函数:locate(str1,str)、position(str1 in str)和instr(str,st1)3个函数作用相同,返回子字符串str1在字符串str的开始位置。
    字符串逆序的函数reverse(s):将字符串s反转,返回的字符串的顺序和s字符串顺序相反。
    返回指定位置的字符串的函数:elt(N,字符串1,字符串2,字符串3,...,字符串N)若N=1,则返回字符串1,若N=2,则返回字符串2,以此类推。若N小于1或大于参数的数目,则返回值为null。
    返回指定字符串第一次出现位置的函数:field(s,s1,s2,...)返回字符串s在列表s1,s2,..中第一次出现的位置,在找不到s的情况下,返回值为0.若s为null,则返回值为0,原因是null不能同任何值进行同等比较。
    返回子串第一次出现位置的函数find_in_set(s1,s2):find_in_set(s1,s2)返回字符串s1在字符串s2中出现的位置,字符串列表是一个由多个逗号‘,’分开的字符串组成的列表。如果s1不在s2或s2为空字符串,则返回值为0.如果任意一个参数为null,则返回值为null。这个函数在第一参数包含一个逗号‘,’时将无法正常运行。
    【虽然find_in_set和field两个函数格式不同,但作用类似,都可以返回指定字符串在字符串列表中的位置】
    选取字符串的函数make_set(x,s1,s2,...):make_set(x,s1,s2,...)返回由xde二进制数指定的相应位的字符串组成的字符串,s1对应比特1,s2对应比特01以此类推。s1,s2..中denull值不会被添加到结果中。【先x转换为二进制数表示,从右到左对应s1,s2,...从左向右顺序,取二进制数为1的字符串组合,另外1101=1|4|8=1+4+8,这种情况,位与相当于加法运算】
  3. 日期和时间函数
    获取当前日期的函数和获取当前时间的函数:curdate()和current_date()函数作用相同,将当前日期按照'YYYY-MM-DD'或YYYYMMDD格式的值返回,具体格式根据函数用在字符串或是数字语境中而定;curtime和current_time()函数作用相同,将当前时间以'HH:MM:SS'或HHMMSS的格式返回,具体格式根据函数用在字符串或是数字语境中而定。
    获取当前日期和时间的函数:current_timestamp()、localtime()、now()和sysdate()4个函数的作用相同,军返回当前日期和时间值,格式为'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS,具体格式根据函数用在字符串或数字语境中而定。

    1. UNIX时间戳函数:unix_timestamp(date)若无参数调用,默认使用当前日期和时间作为参数,返回一个unix时间戳(‘1970-01--01 00:00:00’GMT之后的秒数)作为无符号整数。若用date来调用unix_timestamp(),它会将参数值以'1970-01-01 00:00:00'GMT后的秒数的形式返回。date可以是一个date字符串、datetime字符串、timestamp或一个当地时间的YYMMDD或YYYYMMDD格式的数字;from_unixtime(date)函数把unix时间戳转换为普通格式的时间,与unix_timestamp(date)函数互为反函数。
      返回UTC日期的函数和返回UTC时间的函数:utc_date()返回当前utc(世界标准时间)日期值,其格式为'YYYY-MM-DD'或YYYYMMDD;utc_time()返回当前utc时间值,其格式为'HH:MM:SS'或HHMMSS【utc_date()返回当前时区的日期值,utc_time()返回当前时区的时间值】
      获取月份的函数month(date)和monthname(date):month(date)返回date对应的月份,范围值从1~12,monthname(date)返回日期date对应月份的英文全名。
      获取星期的函数dayname(d)、dayofweek(d)和weekday(d):dayname(d)函数返回d对应的工作日的英文全称,列如Sunday、Monday等;dayofweek(d)函数返回d对应的一周中的索引(位置)。1表示周日,2表示周一,...,7表示周六;weekday(d)返回d对应的工作日索引,0表示周一,1表示周二,...,6表示周日。
      获取星期数的函数week(d,mode)和weekofyear(d):week(d)计算日期d是一年中的第几周。week(d,mode)的双参数形式允许指定该星期是否起始于周日或周一,以及返回值的返回是否为从0~53或从1~53.若mode参数被省略,则使用default_week_format系统自变量的值(mysql该值默认为0)【weekofyear(d)相当于week(d,3)】

      WEEK函数中Mode参数取值
      Mode 一周的第一天 范围
      0 周日 0~53
      1 周一 0~53
      2 周日 1~53
      3 周一 1~53
      4 周日 0~53
      5 周一 0~53
      6 周日 1~53
      7 周一 1~53

      获取天数的函数dayofyear(d)和dayofmonth(d):dayofyear()函数返回d是一年中的第几天,范围是从1~366;dayofmonth(d)函数返回d是一个月中的第几天,范围是从1~31。
      获取年份、季度、小时、分钟和秒钟的函数:year(date)返回date对应的年份,范围是1970~2069;quarter(date)返回date对应的一年中的季度值,范围是从1~4;hour(time)返回time对应的小时,范围0~23;mimute(time)返回time对应的分钟数,范围是从0~59;second(time)返回time对应的秒数,范围是从0~59。
      获取日期的指定值的函数extract(type from date)【extract中文提取】:extract(type from date)函数所使用的时间间隔类型说明符同date_add()或date_sub()的相同,但它从日期中提取一部分,而不是执行日期运算。【type请参看表:MySQL中计算日期和时间的格式】
      时间和秒钟转换的函数:time_to_sec(time)返回已转化为miao的time参数。sec_to_time(secondes)返回被转化为小时、分钟和秒数的secondes参数值,其格式为'HH:MM:SS'或HHMMSS。

      计算日期和时间的函数:date_add(),adddate(),date_sub(),subdate(),addtime(),subtime()和datediff()
        adddate/date_add(date,interval expr type)和subdate/date_sub(date,interval expr type),其中,date是一个datetime或date值,用来指定起始时间,expr是一个表达式,用来指定从起始日期添加或减去的时间间隔值,expr是一个字符串,对于负值的时间间隔,它可以以一个负号‘-’开头,type为关键词,它指示了表达式被解释的方式。若参数是一个date值,计算只会包括year、month和day部分,其结果是一个date值,否则将会是一个datetime值。

      MySQL中计算日期和时间的格式
      type值 预期的expr格式
      microsecond microseconds
      second seconds
      minute minutes
      hour hours
      day days
      week weeks
      month months
      quarter quarters
      year years
      second_microsecond 'seconds.microseconds'
      minute_microsecond 'minutes.microseconds'
      minute_second 'minutes:seconds'
      hour_microsecond 'hours.microseconds'
      hour_second 'hours:minutes:seconds'
      hour_minute 'hours:minutes'
      day_microsecond 'days.microseconds'
      day_second 'days hours:minutes:seconds'
      day_minute 'days hours:minutes'
      day_hour 'days hours'
      year_month 'years-months'

      addtime(date,expr)或subtime(date,expr)表示让date加上或减去expr值,并返回修改后的值,date是一个日期或者日期时间表达式,而expr是一个时间表达式。
      datediff(date1,date2)返回起始时间date1和结束时间date2之间的天数(即date1-date2的值)。date1和date2为日期或日期时间表达式。计算中只用到这些值的日期部分。

      将日期和时间格式化的函数:date_format(date,format)根据format指定的格式显示date值。【用的时候查format格式】;
      time_formate(time,format)根据format字符串安排time值的格式,time_format只处理时间值;
      get_format(val_type,format_type)返回日期时间字符串的显示格式,val_type表示日期数据类型,包括date、datetime和time;format_type表示格式化显示类型,包括eur、interval、iso、jis、usa。

      get_format(datetime,'ISO')得到的样式格式为 %Y-%m-%d %H:%i:%s 对应java格式 yyyy-MM-dd HH:mm:ss
  4. 条件判断函数
    if(expr,v1,v2)函数:if(expr,v1,v2)如果表达式expr是true(expr<>0 and expr <>null),则if()的返回值为v1;否则返回值为v2。if()的返回值为数字值或字符串值,具体情况视其所在语境而定。
    ifnull(v1,v2)假如v1不为null,则ifnull()的返回值为v1,否则其返回值为v2。ifnull()的返回值为数字值或字符串值,具体情况视其所在语境而定。
    case函数:case表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在语境而定
    case expr when v1 then r1 [when v2 then r2] [else rn] end
    该函数表示,如果expr值等于某个vn,则返回对应位置then后面的结果。如果与所有值都不相等,则返回else后面的rn。
    case when v1 then r1 [when v2 then r2] [else rn] end
    该函数表示,某个vn值为true时,返回对应位置then后面的结果,如果所有值都不为true,则返回else后的rn。
  5. 加密函数
    password(str):从原明文密码str计算并返回加密后的密码字符串,当参数为null时,返回null。password()加密是单向的(不可逆),在MySQL服务器的鉴定系统中使用,不应将它用在个人的应用程序中。【MySQL5.7已没有这个方法】
    md5(str):md5(str)为字符串算出一个md5 128比特校验和。该值以32位十六进制数字的二进制字符串形式返回,若参数为null,则会返回null。
    encode(str,pswd_str):encode(str,pswd_str)使用pswd_str作为密码,加密str。使用decode()解密结果,结果是一个和str长度相同的二进制字符串。加密后的长度和被加密的字符串长度相同;decode(crypt_str,pswd_str)使用pswd_str作为密码,解密加密字符串crypt_str,crypt_str是由encode()返回的字符串。【MySQL5.7已没有这两个方法】
  6. 其他函数
    这里记录常用的
    格式化函数format(x,n):format(x,n)将数字x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串的形式返回。若n为0,则返回结果不含小数部分。
    改变字符集的函数 convert(... using ...)带有using 的convert()函数被用来在不同字符集之间转化数据。

    改变数据类型的函数: cast(x,as type)和convert(x,type)函数将一个类型的值转换为另一个类型的值,可转换的type有:binary、char(n)、date、time、datetime、decimal、signed、unsigned。【注意没有varchar】

六、 MySQL函数相关推荐

  1. mysql 函数事务_MySQL:函数和事务

    一.函数 MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操作. (一)数 ...

  2. php 读取mysql 二维数组_PHP操作 二维数组模拟mysql函数

    PHP操作 二维数组模拟mysql函数 public function monimysqltest(){ $testarray=array( array('ss'=>'1','dd'=>' ...

  3. MySQL函数(经典收藏)

    MySQL函数(经典收藏) MySQL函数 MySQL数据库提供了很多函数包括: 数学函数: 字符串函数: 日期和时间函数: 条件判断函数: 系统信息函数: 加密函数: 格式化函数: 一.数学函数 数 ...

  4. MICK-SQL基础教程(第二版) 第六章 函数、谓词、CASE表达式

    第六章 函数.谓词.CASE表达式 函数 函数大致可以分为以下几种: 算术函数(用来进行数值计算的函数) 字符串函数(用来进行字符串操作的函数) 日期函数(用来进行日期操作的函数) 转换函数(用来转换 ...

  5. 珍藏多年的MySQL函数大全笔记,掌握数据库真不难

    做程序员的谁会离得开数据库呢?今天就来分享一下我整理的MySQL的常用函数,基本上囊括了平时要用的函数,它们已经陪我走过了不少年头了,风里来雨里去,缝缝补补又几年,希望能帮到你们! 如果数据库函数你能 ...

  6. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  7. 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码

    mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...

  8. Python 精要参考(第二版) 第六章 函数与函数编程

    1. 第六章 函数与函数编程 为便于代码维护,绝大多数子程序都被分解并重新组织为函数以使代码模块化. 在 Python中定义一个函数很简单,Python从其它函数编程语言中借鉴了很多有用的思路用来简化 ...

  9. Mysql函数:Last_insert_id()语法讲解

    Mysql函数可以实现许多我们需要的功能,下面介绍的Mysql函数Last_insert_id()就是其中之一,希望对您学习Mysql函数能有所帮助. 自动返回最后一个INSERT或 UPDATE 查 ...

  10. exec函数组六个函数的用法和区别

    exec函数组有六个函数,分别是: #include <unistd.h> extern char **environ; int execl(const char *path, const ...

最新文章

  1. 关于Aptana studio工具
  2. 英语模板末尾【希望可以记着】
  3. AMD yes!拿下Meta后发布新芯片,FP64性能是A100 4.9倍,面向高性能计算和机器学习...
  4. [论文收集] ICSOC 2008 论文
  5. 年年有余之java求余的技巧集合
  6. [深度学习基础] 4. 卷积神经网络
  7. 如果去掉数学前后的空格_数学家们是怎么玩趣味拼图游戏的?
  8. 全程干货,requests模块与selenium框架详解
  9. 备份Mysql数据库时,报 Couldn't execute 'show fields from的一种问题解决方案
  10. 一个html数据编辑模板
  11. 语音识别双十一优惠活动
  12. markdown格式的文章如何转换为可以发布在微信公众号上的内容
  13. 力扣题目算法分类【持续更新】
  14. 高等代数-三-消元法
  15. 批处理For--分割字符串
  16. unity3d利用pano2VR实现全景视图效果
  17. java shiro原理_Shiro的原理及Web搭建
  18. 一文了解Clickhouse
  19. (自兴人工智能)python列表
  20. Rcurl--炼数成金课程第一周

热门文章

  1. DirectX11-硬件多实例渲染
  2. NPDP第一章:新产品开发战略
  3. 〖NOIP2004P〗FBI树
  4. Kafka:消息格式的选择 Avro JSON XML String JavaBean
  5. LINUX系统编程__文件编程__open与fopen的区别
  6. idea :不支持发行版本11问题
  7. 奇虎360Java笔试题
  8. 自适应学习率算法.基于阿米霍步长准则的线性回溯搜索算法
  9. 没上网也能使用QQ截图工具
  10. rac建oracle表空间,Oracle Rac创建表空间及用户