• MySQL内置函数


    22. database函数

    格式:database()

    功能:返回当前数据库的名字

    示例:




    21. current_user函数

    格式:current_user()

    功能:返回当前连接的账号名

    返回值:'user_name'@'host_name'

    等价:CURRENT_USER

    示例:




    20. to_days函数

    格式:to_days(date)

    功能:返回日期对应的天数,计算从0000-00-00开始经过的天数

    参数:date类型的日期值,MySQL会自动将两位数的年份转换成四位数的年份,即“95-08-25”和“950825”等价于“1995-08-25”

    说明:date不可为1582年之前的日期

    示例:






    19. current_date函数

    格式:current_date()

    功能:返回当前日期

    返回值:字符串上下文中返回"YYYY-MM-DD";数字上下文中返回"YYYYMMDD"

    等价:CURDATE() CURRENT_DATE

    示例:




    18. floor函数

    格式:floor(X)

    功能:返回不大于X的最大整数

    示例:




    17. rand函数

    格式:rand(N)

    功能:返回一个随机浮点数,范围 [0, 1)

    参数:N为随机数种子,可省略

    ◇ 若N为常量,则在执行前只初始化一次随机数种子

    ◇ 若N为非常量,例如字段名,则每次调用rand()时都用相应的值初始化一次种子


    说明:

    ① 若N相同,则生成的随机数都一样

    ② 要获取 [i, j)之间的一个随机整数,可以使用floor(i + rand() * (j-i))

    ③ 当rand()用在where子句时,每行计算一次


    示例:

    获取 [7, 12)的随机整数




    16. right函数

    格式:right(str, len)

    功能:返回字符串str右侧前len个字符

    示例:




    15. left函数

    格式:left(str, len)

    功能:返回字符串str左侧前len个字符

    示例:




    14. convert函数

    格式:convert(str USING encode)

    功能:将字符串「str」转换为「encode」编码

    参数:「encode」为MySQL对应字符集的名字

    示例:select convert("abc" USING utf8);


    格式:convert(expr, type)

    功能:将expr转换为type类型的结果

    示例:select convert(1/3, decimal(4, 3));



    13. cast函数

    等同于convert(expr, type)



    12. date_add函数

    格式:date_add(time, INTERVAL expr unit)

    功能:执行日期计算

    参数:

    time 起始时间,可为date或datetime类型

    expr 间隔时间,将被加到time

    unit 指定expr的单位

    返回值:

    ① 以下情况,返回NULL

        ◇ 「time」为非法日期,如「2006-07-00」

        ◇ 「time」格式非法,如「201704-30」

     以下情况,返回datetime

        ◇ 「time为datetime

        ◇ time为date,「unit」使用了HOURS「MINUTES」或「SECONDS

     其它情况下,返回date


    注意事项:

    ① 若expr对于unit来说太短,则高位补0

    即 INTERVAL "01:45" MINUTE_MICROSECOND 等价于00:01.000045 0分1秒45微秒

    ② expr被视作字符串,因此为expr指定非字符串值时,需要小心

    即 INTERVAL 6/4 HOUR_MINUTE 等价于 INTERVAL 1.5000 HOUR_MINUTE,即1小时5000分钟

    解决办法:使用CAST进行转换,INTERVAL CAST(6/4 AS DECIMAL(3, 1)) HOUR_MINUTE 


    说明:

    月份自动转换,即date_add("2017-04-29", INTERVAL 2 DAY),结果为"2017-05-01"


    等价

    等同于time」+ INTERVAL expr unit

    INTERVAL expr unit 可以和time」互换位置,即:INTERVAL expr unit +time


    unit取值和expr格式,对应关系




    11. date_sub函数

    参考date_add


    等价

    等同于time」- INTERVAL expr unit

    INTERVAL expr unit不能放在减号左侧,因为从时间区间减值,没有意义



    10. unhex函数

    格式:unhex(str)

    功能:将十六进制字符串还原为原始数据

    说明:对于字符串参数str,unhex(str)将参数中的每对字符当做两个十六进制数,并将其转换为由该数表示的字节。返回值是二进制字符串

    返回值:成功返回二进制字符串;若参数中有非法字符,则返回NULL

    示例:




    9. hex函数

    格式:hex(binary_data)

    功能:使用十六进制字符串来表示二进制数据

    说明:hex将binary_data中的每个字节,都转化成对应的两位十六进制值的字符串形式

    参数:binary_data可为任意类型的数据,如字符串和数字

    返回值:返回十六进制字符串

    示例:


    因为字符"a"对应的十六进制值为0x61,"b"=0x62,"c"=63,故字符串"abc"的十六进制字符串为"616263"


    因为整数255的十六进制值为0xff,故整数255的十六进制字符串为"FF"


    因为二进制数b'01101101'的十六进制值为0x6d,故二进制数b'01101101'的十六进制字符串为"6D"


    因为十六进制数x'2bfe'的十六进制值为0x2BFE,故十六进制数x'2bfe'的十六进制字符串为"2BFE"



    8. conv函数

    格式:conv(N, from_base, to_base)

    功能:数字的进制转换

    参数:

    N 原始数字,可为整数或内容为整数的字符串

    from_base 原进制

    to_base 目标进制

    返回值:成功返回转化后结果的字符串表示,失败返回NULL

    示例:




    7. length函数

    格式:length(arg)

    功能:返回字符串占用的字节数

    参数:参数可为字符串字面值,或字符串类型的字段名



    6. char_length函数

    格式:char_length(arg)

    功能:返回字符串中的字符个数

    参数:参数可为字符串字面值,或字符串类型的字段名



    5. bit_length函数

    格式:bit_length(arg)

    功能:返回字符串占用的位数

    参数:参数可为字符串字面值,或字符串类型的字段名



    4. max函数

    格式:max(FieldName)

    功能:获取字段的最大值

    示例:




    3. min函数

    格式:min(FieldName)

    功能:获取字段的最小值

    示例:




    2. replace函数

    格式:replace(str, from, to)

    功能:将字符串str中的所有子串from替换为子串to

    例如:

    获取tb_user_device表中的guid, chns字段,同时将chns字段中的子串"nm":""删除

    select guid, replace(chns, concat('"nm":""'), '') from tb_user_device;



    1. concat函数

    格式:concat(str1, str2...)

    功能:返回由各参数首尾连接而成的字符串,参数可为字段名

    例如:

    查询chns字段包含「"nm":"xxx」的记录数,「xxx」为同一记录中guid的字段值

    select count(*) from tb_user_device where chns like concat('%"nm":"', guid, '%');  


  • 相关阅读:
    nodejs + typescirpt + vs code
    NodeJs使用nodejs-websocket + protobuf
    Windows10环境下使用VisualSVN server搭建SVN服务器
    微信小游戏下socket.io的使用
    JS中实现种子随机数
    帧同步和状态同步
    EgretPaper学习笔记一 (安装环境,新建项目)
    反编译微信小游戏
    微信小游戏 小程序跳转修改 不支持动态更新,只能在发布时修改
    HTML5实现本地JSON文件的读写
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/7706203.html
Copyright © 2020-2023  润新知