精华内容
下载资源
问答
  • mysql内置函数

    2021-02-07 19:33:13
    一、字符串函数1.concat(s1,s2....sn):把传入的参数连接成一个字符串;2.insert(str,x,y,str):从str的x位置开始,替换y长度的字符串为str,select insert('abcdefg',2,3,'hello');3.lower(str),upper(str):将字符串...

    一、字符串函数

    1.concat(s1,s2....sn):把传入的参数连接成一个字符串;

    2.insert(str,x,y,str):从str的x位置开始,替换y长度的字符串为str,select insert('abcdefg',2,3,'hello');

    3.lower(str),upper(str):将字符串转换为大写,小写;

    4.left(str,x) right(str,x) 返回str左边(右边)x个字符,x为null则返回null;

    5.lpad(str,n,pad) rpad(str,n,pad)  用pad对字符串str从最左边(右边)进行填充,直到总长度达到n ; select name,lpad(name,10,'#'),rpad(name,10,'(') from cats;

    6.trim(),ltrim(),rtrim()去掉两边,左边,右边空格;select concat('1',trim('   abc   '),'2'),concat('1',ltrim('   abc   '),'2'),concat ('1',rtrim('   abc   '),'2')G;

    7.replace(str,a,b) 在字符串str中用字符串b替换所有的字符串a;

    8.strcmp(s1,s2):如果S1比S2小,返回-1;如果S1比S2大则返回1;如果相等则返回0;

    9.substring(str,x,y) 返回字符串str中从位置x起,长度为y的子字符串;

    二、数值函数

    abs(x):返回绝对值;

    ceil(x):返回大于x的最小整数;

    floor(x):返回小于x的最大整数;

    mod(x,y):返回x与y的模;

    rand():返回0-1之间的随机数   select round(rand()*100);

    round(x,y):返回参数x的y位小数的四舍五入结果;

    truncate(x,y):返回数字x截断为y位小数的结果;

    三、日期函数

    curdate() curtime() now();

    select curdate();

    select unix_timestamp(now());

    select from_unixtime(1331110656);

    select week(now()),year(now());

    select hour(curtime()),minute(curtime());

    select monthname(now());

    select date_format(now(),"%Y-%m-%d %H:%i:%s");

    date_add(xxx,interval x day);

    data_sub(xxx,interva; x day);

    展开全文
  • MYSQL内置函数

    2012-09-24 17:26:34
    mysql里面的一些内置函数 MYSQL内置函数
  • mysql内置函数大全

    万次阅读 多人点赞 2018-09-16 11:23:13
    mysql内置函数列表可以从mysql官方文档查询,这里仅分类简单介绍一些可能会用到的函数。 1 数学函数 abs(x) pi() mod(x,y) sqrt(x) ceil(x)或者ceiling(x) rand(),rand(N):返回0-1间的浮点数,使...

    转自:https://www.cnblogs.com/noway-neway/p/5211401.html

    mysql中的内置函数

    mysql内置函数列表可以从mysql官方文档查询,这里仅分类简单介绍一些可能会用到的函数。

    1 数学函数

    abs(x)
    pi()
    mod(x,y)
    sqrt(x)
    ceil(x)或者ceiling(x)
    rand(),rand(N):返回0-1间的浮点数,使用不同的seed N可以获得不同的随机数
    round(x, D):四舍五入保留D位小数,D默认为0, 可以为负数, 如round(19, -1)返回20
    truncate(x, D):截断至保留D位小数,D可以为负数, 如trancate(19,-1)返回10
    sign(x): 返回x的符号,正负零分别返回1, -1, 0
    pow(x,y)或者power(x,y)
    exp(x):e^x
    log(x):自然对数
    log10(x):以10为底的对数
    radians(x):角度换弧度
    degrees(x):弧度换角度
    sin(x)和asin(x):
    cos(x)和acos(x):
    tan(x)和atan(x):
    cot(x):

    2 字符串函数

    char_length(str):返回str所包含的字符数,一个多字节字符算一个字符
    length(str): 返回字符串的字节长度,如utf8中,一个汉字3字节,数字和字母算一个字节
    concat(s1, s1, ...): 返回连接参数产生的字符串
    concat_ws(x, s1, s2, ...): 使用连接符x连接其他参数产生的字符串
    INSERT(str,pos,len,newstr):返回str,其起始于pos,长度为len的子串被newstr取代。
    1. 若pos不在str范围内,则返回原字符串str
    2. 若str中从pos开始的子串不足len,则将从pos开始的剩余字符用newstr取代
    3. 计算pos时从1开始,若pos=3,则从第3个字符开始替换
    lower(str)或者lcase(str):
    upper(str)或者ucase(str):
    left(s,n):返回字符串s最左边n个字符
    right(s,n): 返回字符串最右边n个字符
    lpad(s1, len, s2): 用s2在s1左边填充至长度为len, 若s1的长度大于len,则截断字符串s1至长度len返回
    rpad(s1, len, s2):
    ltrim(s):删除s左侧空格字符
    rtrim(s):
    TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)或TRIM([remstr FROM] str):从str中删除remstr, remstr默认为空白字符
    REPEAT(str,count):返回str重复count次得到的新字符串
    REPLACE(str,from_str,to_str): 将str中的from_str全部替换成to_str
    SPACE(N):返回长度为N的空白字符串
    STRCMP(str1,str2):若str1和str2相同,返回0, 若str1小于str2, 返回-1, 否则返回1.
    SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len),MID(str,pos,len): 获取特定位置,特定长度的子字符串
    LOCATE(substr,str), LOCATE(substr,str,pos),INSTR(str,substr),POSITION(substr IN str): 返回字符串中特定子串的位置,注意这里INSTR与其他函数的参数位置是相反的
    REVERSE(str)
    ELT(N,str1,str2,str3,...):返回参数strN, 若N大于str参数个数,则返回NULL
    FIELD(str,str1,str2,str3,...): 返回str在后面的str列表中第一次出现的位置,若找不到str或者str为NULL, 则返回0
    FIND_IN_SET(str,strlist):strlist是由','分隔的字符串,若str不在strlist或者strlist为空字符串,则返回0;若任意一个参数为NULL则返回NULL
    MAKE_SET(bits,str1,str2,...): 由bits的作为位图来选取strN参数,选中的参数用','连接后返回

    3 日期和时间函数

    CURDATE(), CURRENT_DATE, CURRENT_DATE():用于获取当前日期,格式为'YYYY-MM-DD'; 若+0则返回YYYYMMDD
    UTC_DATE, UTC_DATE():返回当前世界标准时间
    CURTIME([fsp]), CURRENT_TIME, CURRENT_TIME([fsp]): 用于获取当前时间, 格式为'HH:MM:SS' 若+0则返回 HHMMSS
    UTC_TIME, UTC_TIME([fsp])
    CURRENT_TIMESTAMP, CURRENT_TIMESTAMP([fsp]), LOCALTIME, LOCALTIME([fsp]), SYSDATE([fsp]), NOW([fsp]): 用于获取当前的时间日期,格式为'YYYY-MM-DD HH:MM:SS',若+0则返回YYYYMMDDHHMMSS
    UTC_TIMESTAMP, UTC_TIMESTAMP([fsp])
    UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date):返回一个unix时间戳('1970-01-01 00:00:00' UTC至今或者date的秒数),这实际上是从字符串到整数的一个转化过程
    FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format):从时间戳返回'YYYY-MM-DD HH:MM:SS' 或者YYYYMMDDHHMMSS,加入format后根据所需的format显示。
    MONTH(date)
    MONTHNAME(date)
    DAYNAME(date)
    DAY(date),DAYOFMONTH(date):1-31或者0
    DAYOFWEEK(date):1-7==>星期天-星期六
    DAYOFYEAR(date): 1-365(366)
    WEEK(date[,mode]):判断是一年的第几周,如果1-1所在周在新的一年多于4天,则将其定为第一周;否则将其定为上一年的最后一周。mode是用来人为定义一周从星期几开始。
    WEEKOFYEAR(date):类似week(date,3),从周一开始计算一周。
    QUARTER(date):返回1-4
    HOUR(time):返回时间中的小时数,可以大于24
    MINUTE(time):
    SECOND(time):
    EXTRACT(unit FROM date):提取日期时间中的要素

        SELECT EXTRACT(YEAR FROM '2009-07-02'); ##2009
        SELECT EXTRACT(YEAR_MONTH FROM '2009-07-02 01:02:03');##200907
        SELECT EXTRACT(DAY_MINUTE FROM '2009-07-02 01:02:03');##20102
        SELECT EXTRACT(MICROSECOND FROM '2003-01-02 10:30:00.000123');##123

    TIME_TO_SEC(time)
    SEC_TO_TIME(seconds)

    TO_DAYS(date): 从第0年开始的天数
    TO_SECNDS(expr):从第0年开始的秒数

    ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days),DATE_ADD(date,INTERVAL expr unit)
    DATE_SUB(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)
    ADDTIME(expr1,expr2)
    SUBTIME(expr1,expr2)

        SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');##'2008-01-02 01:01:01.000001'
        SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');##'03:00:01.999997'

    注意:时间日期的加减也可以直接用+/-来进行

        date + INTERVAL expr unit
        date - INTERVAL expr unit
        如:
        SELECT '2008-12-31 23:59:59' + INTERVAL 1 SECOND;##'2009-01-01 00:00:00'
        SELECT INTERVAL 1 DAY + '2008-12-31';##'2009-01-01'
        SELECT '2005-01-01' - INTERVAL 1 SECOND;##'2004-12-31 23:59:59'

    DATE_FORMAT(date,format):
    DATEDIFF(expr1,expr2):返回相差的天数
    TIMEDIFF(expr1,expr2):返回相隔的时间

    4 条件判断函数

    IF(expr1,expr2,expr3):如果expr1不为0或者NULL,则返回expr2的值,否则返回expr3的值
    IFNULL(expr1,expr2):如果expr1不为NULL,返回expr1,否则返回expr2
    NULLIF(expr1,expr2): 如果expr1=expr2则返回NULL, 否则返回expr2
    CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
    当compare_value=value时返回result
    CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
    当condition为TRUE时返回result

        SELECT CASE 1 WHEN 1 THEN 'one'
            WHEN 2 THEN 'two' ELSE 'more' END;##'one'
        SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;##'true'
        SELECT CASE BINARY 'B'
            WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;##NULL

    5 系统信息函数

    VERSION():返回mysql服务器的版本,是utf8编码的字符串
    CONNECTION_ID():显示连接号(连接的线程号)
    DATABASE(),SCHEMA():显示当前使用的数据库
    SESSION_USER(), SYSTEM_USER(), USER(), CURRENT_USER, CURRENT_USER():返回当前的用户名@主机,utf8编码字符串
    CHARSET(str)
    COLLATION(str)
    LAST_INSERT_ID():自动返回最后一个insert或者update查询, 为auto_increment列设置的第一个发生的值

    6 加密和压缩函数

    PASSWORD(str):这个函数的输出与变量old_password有关。old_password 在mysql5.6中默认为0。 不同取值的效果如下表

    old_password=1时, password(str)的效果与old_password(str)相同,由于其不够安全已经弃用(5.6.5以后)。
    old_password=2时,在生成哈希密码时会随机加盐。

    MD5(str):计算MD5 128位校验和,返回32位16进制数构成的字符串,当str为NULL时返回NULL。可以用作哈希密码
    SHA1(str), SHA(str):计算160位校验和,返回40位16进制数构成的字符串,当str为NULL时返回NULL。
    SHA2(str, hash_length):计算SHA-2系列的哈希方法(SHA-224, SHA-256, SHA-384, and SHA-512). 第一个参数为待校验字符串,第二个参数为结果的位数(224, 256, 384, 512)
    ENCRYPT(str[,salt]): 用unix crypt()来加密str. salt至少要有两位字符,否则会返回NULL。若未指定salt参数,则会随机添加salt。

    ECODE(crypt_str,pass_str):解密crypt_str, pass_str用作密码
    ENCODE(str,pass_str):用pass_str作为密码加密str

    DES_ENCRYPT(str[,{key_num|key_str}]):用Triple-DES算法编码str, 这个函数只有在mysql配置成支持ssl时才可用。
    DES_DECRYPT(crypt_str[,key_str])

    AES_ENCRYPT(str,key_str[,init_vector])
    AES_DECRYPT(crypt_str,key_str[,init_vector])

    COMPRESS(string_to_compress):返回二进制码
    UNCOMPRESS(string_to_uncompress)

    7 聚合函数

    若在没使用group by时使用聚合函数,相当于把所有的行都归于一组来进行处理。除非特殊说明,一般聚合函数会忽略掉NULL.
    AVG([DISTINCT] expr): 返回expr的平均值,distinct选项用于忽略重复值
    COUNT([DISTINCT] expr):返回select中expr的非0值个数,返回值为bigint类型
    group_concat:连接组内的非空值,若无非空值,则返回NULL

            GROUP_CONCAT([DISTINCT] expr [,expr ...]
                 [ORDER BY {unsigned_integer | col_name | expr}
                        [ASC | DESC] [,col_name ...]]
                [SEPARATOR str_val])

    MAX([DISTINCT] expr)
    MIN([DISTINCT] expr)

    SUM([DISTINCT] expr)
    VAR_POP(expr)
    VARIANCE(expr):同VAR_POP(expr),但是这是标准sql的一个扩展函数
    VAR_SAMP(expr)
    STD(expr): 这是标准sql的一个扩展函数
    STDDEV(expr):这个函数是为了跟oracle兼容而设置的
    STDDEV_POP(expr):这个是sql标准函数

    STDDEV_SAMP(expr):样本标准差

    8 格式或类型转化函数

    FORMAT(X,D[,locale]):将数字X转化成'#,###,###.##'格式,D为保留的小数位数
    CONV(N,from_base,to_base):改变数字N的进制,返回值为该进制下的数字构成的字符串
    INET_ATON(expr):ip字符串转数字
    INET_NTOA(expr):数字转ip字符串
    CAST(expr AS type):转换数据类型
    CONVERT(expr,type), CONVERT(expr USING transcoding_name): type可以为BINARY[(N)],CHAR[(N)],DATE,DATETIME, DECIMAL[(M[,D])],DECIMAL[(M[,D])],TIME,UNSIGNED [INTEGER]等等。transcoding_name如utf8等等

    人的一生只有两万来天,效率至上

    展开全文
  • 在本篇文章里小编给大家整理的是关于MySql内置函数的知识点总结内容,需要的朋友们可以学习参考下。
  • 6.8 mysql 内置函数-日期函数6.8.1 当前日期 – curdate() mysql> select curdate(); +------------+ | curdate() | +------------+ | 2018-02-12 | +------------+ 1 row in set (0.00 sec) 6.8.2 当前

    6.8 mysql 内置函数-日期函数

    6.8.1 当前日期 – curdate()
        mysql> select curdate();
        +------------+
        | curdate()  |
        +------------+
        | 2018-02-12 |
        +------------+
        1 row in set (0.00 sec)
    
    6.8.2 当前时间 – curtime()
        mysql> select curtime();
        +-----------+
        | curtime() |
        +-----------+
        | 22:41:57  |
        +-----------+
        1 row in set (0.00 sec)
    
    6.8.3 当前日期和时间 – now()
        mysql> select now();
        +---------------------+
        | now()               |
        +---------------------+
        | 2018-02-12 22:42:23 |
        +---------------------+
        1 row in set (0.00 sec)
    
    6.8.4 unix时间戳 – unix_timestamp()
        mysql> select unix_timestamp();
        +------------------+
        | unix_timestamp() |
        +------------------+
        |       1518504183 |
        +------------------+
        1 row in set (0.00 sec)
    
    6.8.5 unix的日期值 – from_unixtime(date)
        mysql> select from_unixtime(1518504183);
        +---------------------------+
        | from_unixtime(1518504183) |
        +---------------------------+
        | 2018-02-12 22:43:03       |
        +---------------------------+
        1 row in set (0.00 sec)
    
    6.8.6 一年中的第几周 – week(date)
        mysql> select week('2018-02-13');
        +--------------------+
        | week('2018-02-13') |
        +--------------------+
        |                  6 |
        +--------------------+
        1 row in set (0.00 sec)
    
        mysql> select week(now());
        +-------------+
        | week(now()) |
        +-------------+
        |           6 |
        +-------------+
        1 row in set (0.00 sec)
    
    6.8.7 日期的年份、月份、日期 – year(date)、month(date)、day(date)
        mysql> select now();
        +---------------------+
        | now()               |
        +---------------------+
        | 2018-02-12 22:47:07 |
        +---------------------+
        1 row in set (0.00 sec)
    
        mysql> select year(now());
        +-------------+
        | year(now()) |
        +-------------+
        |        2018 |
        +-------------+
        1 row in set (0.00 sec)
    
        mysql> select month(now());
        +--------------+
        | month(now()) |
        +--------------+
        |            2 |
        +--------------+
        1 row in set (0.00 sec)
    
        mysql> select day(now());
        +------------+
        | day(now()) |
        +------------+
        |         12 |
        +------------+
        1 row in set (0.00 sec)
    
    6.8.8 间隔天数 – datediff(date1,date2)
        mysql> select datediff('2018-02-13','2018-02-14');
        +-------------------------------------+
        | datediff('2018-02-13','2018-02-14') |
        +-------------------------------------+
        |                                  -1 |
        +-------------------------------------+
        1 row in set (0.00 sec)
    
        mysql> select datediff('2018-02-14','2018-02-13');
        +-------------------------------------+
        | datediff('2018-02-14','2018-02-13') |
        +-------------------------------------+
        |                                   1 |
        +-------------------------------------+
        1 row in set (0.00 sec)
    
        mysql> select datediff('2018-02-14 12:00:00','2018-02-14 00:00:00');
        +-------------------------------------------------------+
        | datediff('2018-02-14 12:00:00','2018-02-14 00:00:00') |
        +-------------------------------------------------------+
        |                                                     0 |
        +-------------------------------------------------------+
        1 row in set (0.00 sec)
    
        mysql> select datediff('2018-02-14 12:00:00','2018-02-13 23:59:59');
        +-------------------------------------------------------+
        | datediff('2018-02-14 12:00:00','2018-02-13 23:59:59') |
        +-------------------------------------------------------+
        |                                                     1 |
        +-------------------------------------------------------+
        1 row in set (0.00 sec)
    
        mysql> select datediff('2018-02-14 12:00:00','2018-02-13 00:00:00');
        +-------------------------------------------------------+
        | datediff('2018-02-14 12:00:00','2018-02-13 00:00:00') |
        +-------------------------------------------------------+
        |                                                     1 |
        +-------------------------------------------------------+
        1 row in set (0.00 sec)
    
        mysql> select datediff('2018-02-14 12:00:00','2018-02-13 02:00:00');
        +-------------------------------------------------------+
        | datediff('2018-02-14 12:00:00','2018-02-13 02:00:00') |
        +-------------------------------------------------------+
        |                                                     1 |
        +-------------------------------------------------------+
        1 row in set (0.00 sec)
    
        mysql> select datediff('2018-02-14 12:00:00','2018-02-13 12:00:00');
        +-------------------------------------------------------+
        | datediff('2018-02-14 12:00:00','2018-02-13 12:00:00') |
        +-------------------------------------------------------+
        |                                                     1 |
        +-------------------------------------------------------+
        1 row in set (0.00 sec)
    
    
        mysql> select datediff('2018-02-14 12:00:00','2018-02-12 12:00:00');
        +-------------------------------------------------------+
        | datediff('2018-02-14 12:00:00','2018-02-12 12:00:00') |
        +-------------------------------------------------------+
        |                                                     2 |
        +-------------------------------------------------------+
        1 row in set (0.00 sec)
    
        结论:该函数只是计算间隔天数,不足一天也是间隔一天
    
    展开全文
  • 如何查看MySQL内置函数的代码? 比如说SUM(),COUNT(),MIN() 或者是如何自定义实现这些功能
  • MySQL内置函数

    2008-12-11 04:27:53
    不用说什么了吧,都知道的,也是必须的,大家有需要的就下载一份,作为案头文件也可。
  • MySQL内置函数中的日期和时间函数详解.pdf
  • MySQL 常用内置函数与所有内置函数

    万次阅读 2018-10-08 10:38:50
    MySQL 常用内置函数 【数值函数】 Abs(X) //绝对值abs(-10.9) = 10 Format(X,D) //格式化千分位数值format(1234567.456, 2) =1,234,567.46 Ceil(X) //向上取整ceil(10.1) = 11 Floor(X) //向下取整floor (10.1) = ...

    MySQL 常用内置函数

    【数值函数】
    Abs(X) //绝对值abs(-10.9) = 10
    Format(X,D) //格式化千分位数值format(1234567.456, 2) =1,234,567.46
    Ceil(X) //向上取整ceil(10.1) = 11
    Floor(X) //向下取整floor (10.1) = 10
    Round(X) //四舍五入去整
    Mod(M,N) M%N M MOD N  //求余 10%3=1
    Pi() //获得圆周率
    Pow(M,N) //M^N
    Sqrt(X) //算术平方根
    Rand() //随机数
    TRUNCATE(X,D) //截取D位小数

    【时间日期函数】
    Now(),current_timestamp() //当前日期时间
    Current_date() //当前日期
    current_time() //当前时间
    Date(‘yyyy-mm-dd HH;ii:ss’) //获取日期部分
    Time(‘yyyy-mm-dd HH;ii:ss’) //获取时间部分
    Date_format(‘yyyy-mm-dd HH;ii:ss’,’%D %y %a %d %m %b %j')
    Unix_timestamp() //获得unix时间戳
    From_unixtime() //从时间戳获得时间

    【字符串函数】

    ASCII(str) //返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL.
    LENGTH(string ) //string长度,字节
    CHAR_LENGTH(string) //string的字符个数
    SUBSTRING(str ,position [,length ]) //从str的position开始,取length个字符
    REPLACE(str ,search_str ,replace_str) //在str中用replace_str替换search_str
    INSTR(string ,substring ) //返回substring首次在string中出现的位置
    CONCAT(string [,... ]) //连接字串
    CHARSET(str) //返回字串字符集
    LCASE(string ) //转换成小写
    LEFT(string ,length) //从string2中的左边起取length个字符
    LOAD_FILE(file_name) //从文件读取内容
    LOCATE(substring , string [,start_position ]) //同INSTR,但可指定开始位置
    LPAD(string ,length ,pad ) //重复用pad加在string开头,直到字串长度为length
    LTRIM(string ) //去除前端空格
    REPEAT(string ,count ) //重复count次
    RPAD(string ,length ,pad) //在str后用pad补充,直到长度为length
    RTRIM(string ) //去除后端空格
    STRCMP(string1 ,string2 ) //逐字符比较两字串大小
    TRIM(string) //去除前后两端的空格

    【流程函数】
    CASE WHEN [condition]THEN result[WHEN [condition]THEN result ...][ELSE result]END 多分支
    IF(expr1,expr2,expr3) 双分支。

    【聚合函数】
    Count()
    Sum()
    Max()
    Min()
    Avg()
    Group_concat()

    【其他常用函数】
    Md5()
    Default()

     


    MySQL数据库提供了很多函数包括:

    • 数学函数;
    • 字符串函数;
    • 日期和时间函数;
    • 条件判断函数;
    • 系统信息函数;
    • 加密函数;
    • 格式化函数;

    一、数学函数

    数学函数主要用于处理数字,包括整型、浮点数等。

    函数作用
    ABS(x)

    返回x的绝对值  

    SELECT ABS(-1) -- 返回1

    CEIL(x),CEILING(x)

    返回大于或等于x的最小整数  

    SELECT CEIL(1.5) -- 返回2

    FLOOR(x)

    返回小于或等于x的最大整数  

    SELECT FLOOR(1.5) -- 返回1

    RAND()

    返回0->1的随机数  

    SELECT RAND() --0.93099315644334

    RAND(x)

    返回0->1的随机数,x值相同时返回的随机数相同  

    SELECT RAND(2) --1.5865798029924

    SIGN(x)

    返回x的符号,x是负数、0、正数分别返回-1、0和1  

    SELECT SIGN(-10) -- (-1)

    PI()

    返回圆周率(3.141593)  

    SELECT PI() --3.141593

    TRUNCATE(x,y)

    返回数值x保留到小数点后y位的值(与ROUND最大的区别是不会进行四舍五入)  

    SELECT TRUNCATE(1.23456,3) -- 1.234

    ROUND(x)返回离x最近的整数  SELECT ROUND(1.23456) --1
    ROUND(x,y)

    保留x小数点后y位的值,但截断时要进行四舍五入  

    SELECT ROUND(1.23456,3) -- 1.235

    POW(x,y).POWER(x,y)

    返回x的y次方  

    SELECT POW(2,3) -- 8

    SQRT(x)

    返回x的平方根  

    SELECT SQRT(25) -- 5

    EXP(x)

    返回e的x次方  

    SELECT EXP(3) -- 20.085536923188

    MOD(x,y)

    返回x除以y以后的余数  

    SELECT MOD(5,2) -- 1

    LOG(x)

    返回自然对数(以e为底的对数)  

    SELECT LOG(20.085536923188) -- 3

    LOG10(x)

    返回以10为底的对数  

    SELECT LOG10(100) -- 2

    RADIANS(x)

    将角度转换为弧度  

    SELECT RADIANS(180) -- 3.1415926535898

    DEGREES(x)

    将弧度转换为角度  

    SELECT DEGREES(3.1415926535898) -- 180

    SIN(x)

    求正弦值(参数是弧度)  

    SELECT SIN(RADIANS(30)) -- 0.5

    ASIN(x)求反正弦值(参数是弧度)
    COS(x)求余弦值(参数是弧度)
    ACOS(x)求反余弦值(参数是弧度)
    TAN(x)求正切值(参数是弧度)
    ATAN(x) ATAN2(x)求反正切值(参数是弧度)
    COT(x)求余切值(参数是弧度)

     

    二、字符串函数

    字符串函数是MySQL中最常用的一类函数,字符串函数主要用于处理表中的字符串。

    函数说明
    CHAR_LENGTH(s)

    返回字符串s的字符数

    SELECT CHAR_LENGTH('你好123') -- 5

    LENGTH(s)

    返回字符串s的长度

    SELECT LENGTH('你好123') -- 9

    CONCAT(s1,s2,...)

    将字符串s1,s2等多个字符串合并为一个字符串

    SELECT CONCAT('12','34') -- 1234

    CONCAT_WS(x,s1,s2,...)

    同CONCAT(s1,s2,...)函数,但是每个字符串直接要加上x

    SELECT CONCAT_WS('@','12','34') -- 12@34

    INSERT(s1,x,len,s2)

    将字符串s2替换s1的x位置开始长度为len的字符串

    SELECT INSERT('12345',1,3,'abc') -- abc45

    UPPER(s),UCAASE(S)

    将字符串s的所有字母变成大写字母

    SELECT UPPER('abc') -- ABC

    LOWER(s),LCASE(s)

    将字符串s的所有字母变成小写字母

    SELECT LOWER('ABC') -- abc

    LEFT(s,n)

    返回字符串s的前n个字符

    SELECT LEFT('abcde',2) -- ab

    RIGHT(s,n)

    返回字符串s的后n个字符

    SELECT RIGHT('abcde',2) -- de

    LPAD(s1,len,s2)

    字符串s2来填充s1的开始处,使字符串长度达到len

    SELECT LPAD('abc',5,'xx') -- xxabc

    RPAD(s1,len,s2)

    字符串s2来填充s1的结尾处,使字符串的长度达到len

    SELECT RPAD('abc',5,'xx') -- abcxx

    LTRIM(s)去掉字符串s开始处的空格
    RTRIM(s)去掉字符串s结尾处的空格
    TRIM(s)去掉字符串s开始和结尾处的空格
    TRIM(s1 FROM s)

    去掉字符串s中开始处和结尾处的字符串s1

    SELECT TRIM('@' FROM '@@abc@@') -- abc

    REPEAT(s,n)

    将字符串s重复n次

    SELECT REPEAT('ab',3) -- ababab

    SPACE(n)返回n个空格
    REPLACE(s,s1,s2)

    将字符串s2替代字符串s中的字符串s1

    SELECT REPLACE('abc','a','x') --xbc

    STRCMP(s1,s2)比较字符串s1和s2
    SUBSTRING(s,n,len)获取从字符串s中的第n个位置开始长度为len的字符串
    MID(s,n,len)同SUBSTRING(s,n,len)
    LOCATE(s1,s),POSITION(s1 IN s)

    从字符串s中获取s1的开始位置

    SELECT LOCATE('b', 'abc') -- 2

    INSTR(s,s1)

    从字符串s中获取s1的开始位置

    SELECT INSTR('abc','b') -- 2

    REVERSE(s)

    将字符串s的顺序反过来

    SELECT REVERSE('abc') -- cba

    ELT(n,s1,s2,...)

    返回第n个字符串

    SELECT ELT(2,'a','b','c') -- b

    EXPORT_SET(x,s1,s2)

    返回一个字符串,在这里对于在“bits”中设定每一位,你得到一个“on”字符串,并且对于每个复位(reset)的位,你得到一个 “off”字符串。每个字符串用“separator”分隔(缺省“,”),并且只有“bits”的“number_of_bits” (缺省64)位被使用。

    SELECT EXPORT_SET(5,'Y','N',',',4) -- Y,N,Y,N

    FIELD(s,s1,s2...)

    返回第一个与字符串s匹配的字符串位置

    SELECT FIELD('c','a','b','c') -- 3

    FIND_IN_SET(s1,s2)返回在字符串s2中与s1匹配的字符串的位置
    MAKE_SET(x,s1,s2)返回一个集合 (包含由“,”

    字符分隔的子串组成的一个 字符串),由相应的位在bits集合中的的字符串组成。str1对应于位0,str2对 应位1,等等。

    SELECT MAKE_SET(1|4,'a','b','c'); -- a,c

    SUBSTRING_INDEX

    返回从字符串str的第count个出现的分隔符delim之后的子串。

    如果count是正数,返回第count个字符左边的字符串。

    如果count是负数,返回第(count的绝对值(从右边数))个字符右边的字符串。

    SELECT SUBSTRING_INDEX('a*b','*',1) -- a
    SELECT SUBSTRING_INDEX('a*b','*',-1) -- b
    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1) -- c

    LOAD_FILE(file_name)

    读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权 限。文件必须所有内容都是可读的并且小于max_allowed_packet。 如果文件不存在或由于上面原因之一不能被读出,函数返回NULL。

     

    三、日期时间函数

    MySQL的日期和时间函数主要用于处理日期时间。

    函数说明
    CURDATE(),CURRENT_DATE()

    返回当前日期

    SELECT CURDATE()
    ->2014-12-17

    CURTIME(),CURRENT_TIME

    返回当前时间

    SELECT CURTIME()
    ->15:59:02

    NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),

    SYSDATE(),LOCALTIMESTAMP()

    返回当前日期和时间

    SELECT NOW()
    ->2014-12-17 15:59:02

    UNIX_TIMESTAMP()

    以UNIX时间戳的形式返回当前时间

    SELECT UNIX_TIMESTAMP()
    ->1418803177

    UNIX_TIMESTAMP(d)

    将时间d以UNIX时间戳的形式返回

    SELECT UNIX_TIMESTAMP('2011-11-11 11:11:11')
    ->1320981071

    FROM_UNIXTIME(d)

    将UNIX时间戳的时间转换为普通格式的时间

    SELECT FROM_UNIXTIME(1320981071)
    ->2011-11-11 11:11:11

    UTC_DATE()

    返回UTC日期

    SELECT UTC_DATE()
    ->2014-12-17

    UTC_TIME()

    返回UTC时间

    SELECT UTC_TIME()
    ->08:01:45 (慢了8小时)

    MONTH(d)

    返回日期d中的月份值,1->12

    SELECT MONTH('2011-11-11 11:11:11')
    ->11

    MONTHNAME(d)

    返回日期当中的月份名称,如Janyary

    SELECT MONTHNAME('2011-11-11 11:11:11')
    ->November

    DAYNAME(d)

    返回日期d是星期几,如Monday,Tuesday

    SELECT DAYNAME('2011-11-11 11:11:11')
    ->Friday

    DAYOFWEEK(d)

    日期d今天是星期几,1星期日,2星期一

    SELECT DAYOFWEEK('2011-11-11 11:11:11')
    ->6

    WEEKDAY(d)

    日期d今天是星期几,

     0表示星期一,1表示星期二

    WEEK(d),WEEKOFYEAR(d)

    计算日期d是本年的第几个星期,范围是0->53

    SELECT WEEK('2011-11-11 11:11:11')
    ->45

    DAYOFYEAR(d)

    计算日期d是本年的第几天

    SELECT DAYOFYEAR('2011-11-11 11:11:11')
    ->315

    DAYOFMONTH(d)

    计算日期d是本月的第几天

    SELECT DAYOFMONTH('2011-11-11 11:11:11')
    ->11

    QUARTER(d)

    返回日期d是第几季节,返回1->4

    SELECT QUARTER('2011-11-11 11:11:11')
    ->4

    HOUR(t)

    返回t中的小时值

    SELECT HOUR('1:2:3')
    ->1

    MINUTE(t)

    返回t中的分钟值

    SELECT MINUTE('1:2:3')
    ->2

    SECOND(t)

    返回t中的秒钟值

    SELECT SECOND('1:2:3')
    ->3

    EXTRACT(type FROM d)

    从日期d中获取指定的值,type指定返回的值

    SELECT EXTRACT(MINUTE FROM '2011-11-11 11:11:11')
    ->11

    type可取值为:

    MICROSECOND
    SECOND
    MINUTE
    HOUR
    DAY
    WEEK
    MONTH
    QUARTER
    YEAR
    SECOND_MICROSECOND
    MINUTE_MICROSECOND
    MINUTE_SECOND
    HOUR_MICROSECOND
    HOUR_SECOND
    HOUR_MINUTE
    DAY_MICROSECOND
    DAY_SECOND
    DAY_MINUTE
    DAY_HOUR
    YEAR_MONTH

    TIME_TO_SEC(t)

    将时间t转换为秒

    SELECT TIME_TO_SEC('1:12:00')
    ->4320

    SEC_TO_TIME(s)

    将以秒为单位的时间s转换为时分秒的格式

    SELECT SEC_TO_TIME(4320)
    ->01:12:00

    TO_DAYS(d)

    计算日期d距离0000年1月1日的天数

    SELECT TO_DAYS('0001-01-01 01:01:01')
    ->366

    FROM_DAYS(n)

    计算从0000年1月1日开始n天后的日期

    SELECT FROM_DAYS(1111)
    ->0003-01-16

    DATEDIFF(d1,d2)

    计算日期d1->d2之间相隔的天数

    SELECT DATEDIFF('2001-01-01','2001-02-02')
    ->-32

    ADDDATE(d,n)

    计算其实日期d加上n天的日期

    ADDDATE(d,INTERVAL expr type)

    计算起始日期d加上一个时间段后的日期

    SELECT ADDDATE('2011-11-11 11:11:11',1)
    ->2011-11-12 11:11:11 (默认是天)

    SELECT ADDDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE)
    ->2011-11-11 11:16:11 (TYPE的取值与上面那个列出来的函数类似)

    DATE_ADD(d,INTERVAL expr type)同上
    SUBDATE(d,n)

    日期d减去n天后的日期

    SELECT SUBDATE('2011-11-11 11:11:11', 1)
    ->2011-11-10 11:11:11 (默认是天)

    SUBDATE(d,INTERVAL expr type)

    日期d减去一个时间段后的日期

    SELECT SUBDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE)
    ->2011-11-11 11:06:11 (TYPE的取值与上面那个列出来的函数类似)

    ADDTIME(t,n)

    时间t加上n秒的时间

    SELECT ADDTIME('2011-11-11 11:11:11', 5)
    ->2011-11-11 11:11:16 (秒)

    SUBTIME(t,n)

    时间t减去n秒的时间

    SELECT SUBTIME('2011-11-11 11:11:11', 5)
    ->2011-11-11 11:11:06 (秒)

    DATE_FORMAT(d,f)

    按表达式f的要求显示日期d

    SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r')
    ->2011-11-11 11:11:11 AM

    TIME_FORMAT(t,f)

    按表达式f的要求显示时间t

    SELECT TIME_FORMAT('11:11:11','%r')
    11:11:11 AM

    GET_FORMAT(type,s)

    获得国家地区时间格式函数

    select get_format(date,'usa')
    ->%m.%d.%Y (注意返回的就是这个奇怪的字符串(format字符串))

     

    四、条件判断函数

    1、IF(expr,v1,v2)函数

      如果表达式expr成立,返回结果v1;否则,返回结果v2。

    SELECT IF(1 > 0,'正确','错误')    
    ->正确

    2、IFNULL(v1,v2)函数

      如果v1的值不为NULL,则返回v1,否则返回v2。

    SELECT IFNULL(null,'Hello Word')
    ->Hello Word

    3、CASE

      语法1:

    CASE 
      WHEN e1
      THEN v1
      WHEN e2
      THEN e2
      ...
      ELSE vn
    END

      CASE表示函数开始,END表示函数结束。如果e1成立,则返回v1,如果e2成立,则返回v2,当全部不成立则返回vn,而当有一个成立之后,后面的就不执行了。

    SELECT CASE 
      WHEN 1 > 0
      THEN '1 > 0'
      WHEN 2 > 0
      THEN '2 > 0'
      ELSE '3 > 0'
      END
    ->1 > 0

     

      语法2:

    CASE expr 
      WHEN e1 THEN v1
      WHEN e1 THEN v1
      ...
      ELSE vn
    END

      如果表达式expr的值等于e1,返回v1;如果等于e2,则返回e2。否则返回vn。

    SELECT CASE 1 
      WHEN 1 THEN '我是1'
      WHEN 2 THEN '我是2'
    ELSE '你是谁'

     

    五、系统信息函数

    系统信息函数用来查询MySQL数据库的系统信息。

    函数作用
    VERSION()

    返回数据库的版本号

    SELECT VERSION()
    ->5.0.67-community-nt

    CONNECTION_ID() 返回服务器的连接数
    DATABASE()、SCHEMA返回当前数据库名

    USER()、SYSTEM_USER()、SESSION_USER()、

    CURRENT_USER()、CURRENT_USER

    返回当前用户
    CHARSET(str)返回字符串str的字符集
    COLLATION(str)返回字符串str的字符排列方式
    LAST_INSERT_ID()返回最近生成的AUTO_INCREMENT值

     

    六、加密函数

    加密函数是MySQL用来对数据进行加密的函数。

    1、PASSWORD(str)

      该函数可以对字符串str进行加密,一般情况下,PASSWORD(str)用于给用户的密码加密。

    SELECT PASSWORD('123')
        ->*23AE809DDACAF96AF0FD78ED04B6A265E05AA257

    2、MD5

      MD5(str)函数可以对字符串str进行散列,可以用于一些普通的不需要解密的数据加密。

    SELECT md5('123')
        ->202cb962ac59075b964b07152d234b70

    3、ENCODE(str,pswd_str)与DECODE(crypt_str,pswd_str)

      ENCODE函数可以使用加密密码pswd_str来加密字符串str,加密结果是二进制数,需要使用BLOB类型的字段保存。该函数与DECODE是一对,需要同样的密码才能够解密。

    SELECT ENCODE('123','xxoo')
        ->;vx
    SELECT DECODE(';vx','xxoo')
        ->123

     

    七,其他函数

    1、格式化函数FORMAT(x,n)

      FORMAT(x,n)函数可以将数字x进行格式化,将x保留到小数点后n位。

    SELECT FORMAT(3.1415926,3)
        ->3.142

    2、不同进制的数字进行转换

    • ASCII(s) 返回字符串s的第一个字符的ASCII码;
    • BIN(x) 返回x的二进制编码;
    • HEX(x) 返回x的十六进制编码;
    • OCT(x) 返回x的八进制编码;
    • CONV(x,f1,f2) 返回f1进制数变成f2进制数;

    3、IP地址与数字相互转换的函数

    • INET_ATON(IP)函数可以将IP地址转换为数字表示;IP值需要加上引号;
    • INET_NTOA(n)函数可以将数字n转换成IP形式。
    SELECT INET_ATON('192.168.0.1')
        ->3232235521
    SELECT INET_NTOA(3232235521)
        ->192.168.0.1

    4、加锁函数和解锁函数

    • GET_LOCK(name,time)函数定义一个名称为nam、持续时间长度为time秒的锁。如果锁定成功,则返回1;如果尝试超时,则返回0;如果遇到错误,返回NULL。
    • RELEASE_LOCK(name)函数解除名称为name的锁。如果解锁成功,则返回1;如果尝试超时,返回0了如果解锁失败,返回NULL;
    • IS_FREE_LOCK(name)函数判断是否已使用名为name的锁定。如果使用,返回0,否则,返回1;
    SELECT GET_LOCK('MySQL',10)
        ->1    (持续10秒)
    SELECT IS_FREE_LOCK('MySQL')
        ->1    
    SELECT RELEASE_LOCK('MySQL')
        ->1

    5、重复执行指定操作的函数

      BENCHMARK(count.expr)函数将表达式expr重复执行count此,然后返回执行时间。该函数可以用来判断MySQL处理表达式的速度。

    SELECT BENCHMARK(10000,NOW())
        ->0    返回系统时间1万

    6、改变字符集的函数

      CONVERT(s USING cs)函数将字符串s的字符集变成cs。

    SELECT CHARSET('ABC')
        ->utf-8    
    
    SELECT CHARSET(CONVERT('ABC' USING gbk))
        ->gbk

    7、转换数据类型

    • CAST(x AS type)
    • CONVERT(x,type)

      这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。

    SELECT CAST('123' AS UNSIGNED INTEGER) + 1
        ->124
    
    SELECT '123' + 1
        ->124 其实MySQL能默认转换
    
    SELECT CAST(NOW() AS DATE)
      ->2014-12-18

    附上MySQL官方文档:https://dev.mysql.com/doc/refman/5.6/en/func-op-summary-ref.html

     

    展开全文
  • mysql内置函数时间加减和时间戳转换

    千次阅读 2018-07-19 20:30:09
    时间戳转自https://www.cnblogs.com/theseven/p/4962518.html 内置函数时间加减这里写链接内容
  • 一、字符串函数1. CONCAT(S1,S2....SN):把传入的参数连接成一个字符串2. INSERT(str, x, y, insert):将字符串X位置开始,y个字符串长度替换为字符串insert3. LOWER(str) UPPER(str):将字符串转为小或或大写4. LEFT...
  • mysql内置函数

    2010-01-13 14:25:24
    MySQL内置函数表(包括字符串函数、数学函数和日期时间函数)
  • queryDsl引入Mysql内置函数示例

    千次阅读 2020-04-21 13:25:51
    } 这里简单介绍下,QueryDsl引入其他Mysql内置函数的记录 一、两个基础配置类 第一个 import org.hibernate.dialect.MySQL5Dialect; import org.hibernate.dialect.function.SQLFunctionTemplate; import org....
  • 数据库篇:mysql内置函数

    千次阅读 2021-06-05 21:20:20
    sql 是程序开发员绕不开的一项技能,而mysql是当前最流行的数据库,熟知其内置的一些函数,可以使我们平时的开发工作更加顺畅和方便 时间日期函数 字符串函数 数学计算相关函数 条件判断函数 加密和压缩函数 聚合...
  • mysql中的内置函数

    千次阅读 2017-06-10 17:03:27
    mysql内置函数列表可以从mysql官方文档查询,这里仅分类简单介绍一些可能会用到的函数。 1 数学函数 abs(x) pi() mod(x,y) sqrt(x) ceil(x)或者ceiling(x) rand(),rand(N):返回0-1间的浮点数,使用不同的seed N可以...
  • mysql内置函数汇总

    2017-03-16 18:37:58
    (这是在网利宝项目中,逐渐总结归纳的内置函数,大家感兴趣,可以扫码注册体验产品)  一.字符串函数 select concat(name,"age is",age) from users;    insert(str,x,y,insert)//...
  • MAX([DISTINCT] expr) 函数:返回查询到的数据的最大值,不是数字没有意义 MIN([DISTINCT] expr) 函数:返回查询到的数据的最小值,不是数字没有意义 null不计入计算 group by子句的使用 /*语法*/ select...
  • MySQL内置函数 字符串函数: select concat("hello","word"); 链接字串 ->hello world lcase("MYSQL") 转换成小写 ucase("mysql") 转换成大写 length("leyangjun") ...
  • 如题,从我目前所见所知都是不要再sql语句中使用mysql自带的函数而去使用PHP中的函数,但是个人内心一直对这种说法不太信服,如果是这样 那么mysql自带函数存在的意义是什么呢?回复内容:如题,从我目前所见所知都是不要...
  • Mysql加自定义函数计算百分位数(percentile)。-附件资源
  • MySQL内置函数类别及作用

    千次阅读 2017-04-18 18:38:09
    函数 作用 数学函数 用于处理数字。这类函数包括绝对值函数、正弦函数、余弦函数和获取随机数函数等 字符串函数 用于处理字符串。其中包括字符串连接函数、字符串比较函数、字符串中字母大小写转换...
  • MySQL提供了较为丰富的SQL语句,用以支持MySQL提供的主要功能。在数据库内部,MySQL又是怎么知道自己能够处理哪些对象、处理哪些事情的?如果我们输入一条SQL语句,MySQL可能报告语法错误或对象不存在等错误提示,...
  • MySQL内置函数转换ip地址和数字利用两个内置函数inet_aton:将ip地址转换成数字型inet_ntoa:将数字型转换成ip地址充分利用mysql内置的format函数尤其是在处理字符格式的时候,例如将12345转换成12,345这样的,只要用:...
  • 以下询问选择了最近的 30天内所有带有date_col 值的记录: mysql> SELECT something FROM tbl_name  -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) ;  注意,这个询问也能选择将来的日期...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,235
精华内容 25,694
关键字:

mysql内置函数

mysql 订阅
友情链接: xpath-helper.crx.zip