zoukankan      html  css  js  c++  java
  • MySQL(5.6) 函数

    字符串函数

    ASCII(str)

    说明:返回字符串 str 最左边字符的 ASCII 值

    mysql> SELECT ASCII('2');
        -> 50
    mysql> SELECT ASCII(2);
        -> 50
    mysql> SELECT ASCII('a');
        -> 97
    mysql> SELECT ASCII('');
        -> 0
    mysql> SELECT ASCII(NULL);
        -> NULL

     

    BIN(N)

    说明:返回数值 N 的二进制字符串表示,在此 N 是一个长整数 (BIGINT) 数字

    mysql> SELECT BIN(10);
        -> '1010'
    mysql> SELECT BIN(NULL);
        -> NULL

     

    OCT(N)

    说明:返回数值 N 的八进制字符串表示,在此 N 是一个长整数 (BIGINT) 数字

    mysql> SELECT OCT(10);
        -> 12

     

    HEX(N)

    说明:返回数值 N 的十六进制字符串表示,在此 N 是一个长整数 (BIGINT) 数字

    mysql> SELECT HEX(256);
        -> 100

     

    HEX(str)

    说明:返回字符串 str 每个字符对应的十六进制 ASCII 值

    mysql> SELECT HEX('MySQL');
        -> '4D7953514C'

     

    UNHEX(str)

    说明:HEX(str) 的逆过程

    mysql> SELECT UNHEX('4D7953514C');
        -> 'MySQL'

     

    BIT_LENGTH(str)

    说明:返回字符串 str 的比特数

    mysql> SELECT BIT_LENGTH('MySQL');
        -> 40
    mysql> SELECT BIT_LENGTH(NULL);
        -> NULL

     

    CHAR_LENGTH(str)

    说明:返回字符串的字符数

    mysql> SELECT CHAR_LENGTH('MySQL');
        -> 5
    mysql> SELECT CHAR_LENGTH('中文');
        -> 2
    mysql> SELECT CHAR_LENGTH(NULL);
        -> NULL

     

    CHARACTER_LENGTH(str)

    说明:与 CHAR_LENGTH(str) 同义

     

    LENGTH(str)

    说明:返回字符串 str 的字节数

    mysql> SELECT LENGTH('MySQL');
        -> 5
    mysql> SELECT LENGTH('中文');
        -> 6

     

    OCTET_LENGTH(str)

    说明:与 LENGTH(str) 同义

     

    CHAR(N, ... [USING charset_name])

    说明:将参数解释为整数,返回这些整数对应的 ASCII 字符组成的字符串

    mysql> SELECT CHAR(77, 121, 83, 81, 76);
        -> 'MySQL'
    mysql>  SELECT CHAR(77.0, 121.1, 83.2, 81.3, 76.4);
        -> 'MySQL'
    mysql>  SELECT CHAR('77', '121', '83', '81', '76');
        -> 'MySQL'
    mysql> SELECT CHAR(NULL);
        -> NULL

     

    CONCAT(str1, str2, ...)

    说明:返回字符串列表拼接成的字符串

    mysql> SELECT CONCAT('My', 'SQL');
        -> 'MySQL'
    mysql> SELECT CONCAT('My', NULL, 'MySQL');
        -> 
    mysql> SELECT CONCAT('My', 'SQL', 5.6);
        -> 'MySQL5.6'

     

    CONCAT_WS(separator, str1, str2, ...)

    说明:用分隔符 separator 拼接字符串

    mysql> SELECT CONCAT_WS(' ', 'Hello', 'World');
        -> 'Hello World'
    mysql> SELECT CONCAT_WS(',', 'Hello', '' ,'World');
        -> 'Hello,,World'
    mysql> SELECT CONCAT_WS(',', 'Hello', NULL ,'World');
        -> 'Hello,World'
    mysql> SELECT CONCAT_WS(NULL, 'Hello', 'World');
        -> NULL

     

    ELT(N, str1, str2, str3, ...)

    说明:返回字符串列表的第 N 个元素

    mysql> SELECT ELT(1, 'str1', 'str2', 'str3');
        -> 'str1'
    mysql> SELECT ELT(0, 'str1', 'str2', 'str3');
        -> NULL
    mysql> SELECT ELT(4, 'str1', 'str2', 'str3');
        -> NULL

     

    EXPORT_SET(bits, on, off[, separator[, number_of_bits]])

    说明:返回一个字符串,对 bits 值的置一的比特位得到字符串 on,对清零的比特位得到字符串 off,bits 中的比特值按照从右到左的顺序接受检验。字符串由分隔符 separator(默认值为 ',')隔开,字符串长度为 number_of_bits(默认值为 64)

    mysql> SELECT EXPORT_SET(6, '1', '0', '', 10);
         -> '0110000000'

     

    FIELD(str, str1, str2, str3, ...)

    说明:返回字符串 str 在字符串列表中的位置

    mysql> SELECT FIELD('str', 'str1', 'str2', 'str3');
        -> 0
    mysql> SELECT FIELD('str2', 'str1', 'str2', 'str3');
        -> 2

     

    FIND_IN_SET(str, strlist)

    说明:返回字符串 str 在字符串列表 strlist 中的位置,其中 strlist 的元素是由 ',' 隔开

    mysql> FIND_IN_SET('str', 'str1,str2,str3');
        -> 0
    mysql> FIND_IN_SET('str2', 'str1,str2,str3');
        -> 2

     

    FORMAT(X, D[, locale])

    说明:将数值 X 置为 '#,###,###.##' 的格式,四舍五入保留 D 位小数,locale 表示地区(默认值为 'en_US')

    mysql> SELECT FORMAT(12345.6789, 2);
        -> '12,345.68'
    mysql> SELECT FORMAT(12345.6789, 2, 'de_DE');
        -> '12.345,68

     

    TO_BASE64(str)

    说明:对字符串 str 进行 BASE64 编码

    mysql> SELECT TO_BASE64('MySQL');
        -> 'TXlTUUw='

     

    FROM_BASE64(str)

    说明:对字符串 str 进行 BASE64 解码

    mysql> SELECT FROM_BASE64('TXlTUUw=');
        -> 'MySQL'

     

    INSERT(str, pos, len, newstr)

    说明:将字符串 str 从位置 pos 开始的 len 个字符替换成新字符串 newstr

    mysql> SELECT INSERT('basketball', 4, 3, 'e');
        -> 'baseball'
    mysql> SELECT INSERT('MySQL', 3, 100, 'Eclipse');
        -> 'MyEclipse'
    mysql> SELECT INSERT('MySQL', 0, 2, 'MS');
        -> 'MySQL'

     

    INSTR(str, substr)

    说明:返回字串 substr 在字符串 str 中第一次出现的位置

    mysql> SELECT INSTR('MySQL', 'SQL');
        -> 3
    mysql> SELECT INSTR('Oracle', 'sql');
        -> 0

     

    LOWER(str)

    说明:根据最新的字符映射集(默认是 latin1)将字符串转换为小写字母

    mysql> SELECT LOWER('MySQL');
        -> 'mysql'

     

    LCASE(str)

    说明:与 LOWER(str) 同义

     

    UPPER(str)

    说明:根据最新的字符映射集(默认是 latin1)将字符串转换为大写字母

    mysql> SELECT UPPER('MySQL');
        -> 'mysql'

     

    UCASE(str)

    说明:与 UPPER(str) 同义

     

    LEFT(str, len)

    说明:返回字符串 str 最左的 len 个字符

    mysql> SELECT LEFT('MySQL', 2);
        -> 'My'

     

    RIGHT(str, len)

    说明:返回字符串 str 最右的 len 个字符

    mysql> SELECT RIGHT('MySQL', 3);
        -> 'SQL'

     

    LOAD_FILE(file_name)

    说明:返回从文件 file_name 读取的内容。该文件必须存在于服务器上,指定完整的路径名,还要拥有文件的权限,并且文件的内容是可读的,内容长度小于 max_allowed_packet

    mysql> SELECT LOAD_FILE('D:\tmp.txt');

     

    LOCATE(substr, str)

    说明:返回字串 substr 在字符串 str 中第一次出现的位置

    mysql> SELECT LOCATE('SQL' , 'MySQL');
        -> 3
    mysql> SELECT LOCATE('SQL' , 'Oracle');
        -> 0

     

    LOCATE(substr, str, pos)

    说明:返回字串 substr 在字符串 str 中第 pos 个字符后第一次出现的位置

    mysql> SELECT LOCATE('SQL' , 'MySQL', 1);
        -> 3
    mysql> SELECT LOCATE('SQL' , 'MySQL', 4);
        -> 0

     

    POSITION(substr IN str)

    说明:与 LOCATE(substr, str) 同义

     

    LPAD(str, len, padstr)

    说明:往字符串 str 左边填充字符串 padstr 至长度为 len

    mysql> SELECT LPAD('MySQL', 10, '*');
         -> '*****MySQL'
    mysql> SELECT LPAD('MySQL', 2, '*');
         -> 'My'

     

    RPAD(str, len, padstr)

    说明:往字符串 str 右边填充字符串 padstr 至长度为 len

    mysql> SELECT RPAD('MySQL', 10, '*');
        -> 'MySQL*****'
    mysql> SELECT RPAD('MySQL', 2, '*');
        -> 'My'

     

    LTRIM(str)

    说明:移除字符串左边的空白字符

    mysql> SELECT LTRIM('   MySQL   ');
        -> 'MySQL   '

     

    RTRIM(str)

    说明:移除字符串右边的空白字符

    mysql> SELECT RTRIM('   MySQL   ');
        -> '   MySQL'

     

    TRIM([remstr FROM] str) or TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)

    说明:移除字符串 str 指定的前缀和/或后缀(默认值是空格字符)

    mysql> SELECT TRIM('   MySQL   ');
        -> 'MySQL'
    mysql> SELECT TRIM('*' FROM '***MySQL***');
        -> 'MySQL'
    mysql> SELECT TRIM(BOTH '*' FROM '***MySQL***');
        -> 'MySQL'
    mysql> SELECT TRIM(LEADING '*' FROM '***MySQL***');
        -> 'MySQL***'
    mysql> SELECT TRIM(TRAILING '*' FROM '***MySQL***');
        -> '***MySQL'

     

    MAKE_SET(bits, str1, str2, ...)

    说明:返回一个设定值 (一个包含被 ‘,’ 分开的字符串),由在bits组中具有相应的比特的字符串组成。str1 对应比特 0,str2 对应比特 1,以此类推。str1,str2,... 中的 NULL 值不会被添加到结果中。  

    mysql> SELECT MAKE_SET(1, 'str1', 'str2', 'str3', 'str4');
        -> 'str1'
    mysql> SELECT MAKE_SET(3, 'str1', 'str2', 'str3', 'str4');
        -> 'str1,str4'
    mysql> SELECT MAKE_SET(1 | 4, 'str1', 'str2', 'str3', 'str4');
        -> 'str1,str3'
    mysql> SELECT MAKE_SET(1 | 4, 'str1', 'str2', NULL, 'str4');
        -> 'str1'

     

    ORD(str)

    说明:如果字符串最左边的字符是个多字节字符,则返回该字符的代码,代码计算公式为:(1st byte code)+(2nd byte code * 256)+(3rd byte code * 2562...;如果该字符不是个多字节字符,则返回与 ASCII(str) 相同的返回值 

    mysql> SELECT ORD('a');
        -> 97
    mysql> SELECT ORD('')
        -> 15172523

     

    QUOTE(str)

    说明:引证一个字符串,由此产生一个在 SQL 语句中可用作完全转义数据值的结果。返回的字符串由单引号标注,每例都带有单引号(‘'’)、反斜线符号(‘’)、 ASCII NUL以及前面有反斜线符号的 Control-Z。如果自变量的值为 NULL, 则返回不带单引号的单词 “NULL” 。

    mysql> SELECT QUOTE('I'm');
        -> ''I'm''
    mysql> SELECT QUOTE('MySQL');
        -> ''MySQL''
    mysql> SELECT QUOTE(NULL)
        -> 'NULL'

     

    REPEAT(str, count) 

    说明:返回由字符串 str 重复 count 次组成的字符串

    mysql> SELECT REPEAT('MySQL', 3);
        -> 'MySQLMySQLMySQL'
    mysql> SELECT REPEAT('MySQL', 0);
        -> ''

     

    REPLACE(str, from_str, to_str)

    说明:将字符串 str 中的子串 from_str 替换成字符串 to_str

    mysql> SELECT REPLACE('abc123abc', 'abc', 'xyz');
        -> 'xyz123xyz'

     

    REVERSE(str)

    说明:返回与字符串 str 相反顺序的字符串

    mysql> SELECT REVERSE('MySQL')
        -> 'LQSyM'

     

    SPACE(N)

    说明:返回由N个空格符组成的字符串

    mysql> SELECT SPACE(3);
        -> '   '

     

    SUBSTR(str, pos)

    说明:返回字符串 str 从 pos 位置开始后的子串

    mysql> SELECT SUBSTR('abcdefg', 3);
        -> 'cdefg'
    mysql> SELECT SUBSTR('abcdefg', -3);
        -> 'efg'
    mysql> SELECT SUBSTR('abcdefg', 0);
        -> ''
    mysql> SELECT SUBSTR('abcdefg', 10);
        -> ''

    SUBSTR(str FROM pos)

    说明:与 SUBSTR(str, pos) 同义

     

    SUBSTR(str, pos, len)

    说明:返回字符串 str 从 pos 位置开始,长度为 len 的子串

    mysql>SELECT SUBSTR('abcdefg', 3, 4);
        -> 'cdef'
    mysql> SELECT SUBSTR('abcdefg', 0, 4);
        -> ''
    mysql> SELECT SUBSTR('abcdefg', -4, 3);
        -> 'def'
    mysql> SELECT SUBSTR('abcdefg', 3, 10);
        -> 'cdefg'

     

    SUBSTR(str FROM pos FOR len)

    说明:与 SUBSTR(str, pos, len) 同义

     

    SUBSTRING(str, pos)

    说明:与 SUBSTR(str, pos) 同义

     

    SUBSTRING(str FROM pos)

    说明:与 SUBSTR(str FROM pos) 同义

     

    SUBSTRING(str, pos, len)

    说明:SUBSTR(str, pos, len) 同义

     

    SUBSTRING(str FROM pos FOR len)

    说明:与 SUBSTR(str FROM pos FOR len) 同义

     

    MID(str, pos, len)

    说明:与 SUBSTR(str, pos, len) 同义

     

    SUBSTRING_INDEX(str, delim, count)

    说明:count 大于 0 时返回字符串 str 从左数第 count 个定界符 delim 左边的子串,count 小于 0 时返回字符串 str 从右数第 count 个定界符 delim 右边的子串

    mysql> SELECT SUBSTRING_INDEX('str1.str2.str3.str4', '.', 2);
        -> 'str1.str2'
    mysql> SELECT SUBSTRING_INDEX('str1.str2.str3.str4', '.', -2);
        -> 'str3.str4'
    mysql> SELECT SUBSTRING_INDEX('str1.str2.str3.str4', '.', 0);
        -> ''
    mysql> SELECT SUBSTRING_INDEX('str1str2str3str4', '.', 2);
        -> 'str1str2str3str4'

     

    STRCMP(expr1, expr2)

    说明:返回字符串的比较结果

    mysql> SELECT STRCMP('abc', 'cba');
        -> -1
    mysql> SELECT STRCMP('cba', 'abc');
        -> 1
    mysql> SELECT STRCMP('abc', 'abc');
        -> 0
    mysql> SELECT STRCMP('abc', NULL);
        -> NULL

     

    数值函数

    PI()

    说明:返回 π 值

    mysql> SELECT PI();
        -> 3.141593

     

    SIN(X)

    说明:返回 X 的正弦值

    mysql> SELECT SIN(PI() / 2);
        -> 1

     

    ASIN(X) 

    说明:返回 X 的反正弦值,X 不在 -1 和 1 之间则返回 NULL

    mysql> SELECT ASIN(0);
        -> 0
    mysql> SELECT ASIN(1.01);
        -> NULL

     

    COS(X)

    说明:返回 X 的余弦值

    mysql> SELECT COS(PI());
        -> -1

     

    ACOS(X)

    说明:返回 X 的反余弦值,X 不在 -1 和 1 之间则返回 NULL

    mysql> SELECT ACOS(1);
        -> 0
    mysql> SELECT ACOS(1.01);
        -> NULL

     

    ATAN(X)

    说明:返回 X 的反正切值

    mysql> SELECT ATAN(1);
        -> 0.7853981633974483
    mysql> SELECT ATAN(-1);
        -> -0.7853981633974483

     

    ATAN(Y,X) or ATAN2(Y,X)

    说明:返回两个变量 Y 和 X 的反正切值,其值相当于 ATAB(Y/N)

    mysql> SELECT ATAN(6 / 3);
        -> 1.1071487177940904
    mysql> SELECT ATAN(6, 3);
        -> 1.1071487177940904
    mysql> SELECT ATAN2(6, 3);
        -> 1.1071487177940904

     

    TAN(X)

    说明:返回 X 的正切值

    mysql> SELECT TAN(1);
        -> 1.5574077246549023
    mysql> SELECT TAN(0);
        -> 0

     

    COT(X) 

    说明:返回 X 的余切值

    mysql> SELECT COT(1);
        -> 0.6420926159343306

     

    DEGREES(X)

    说明:将 X 由弧度转换为度

    mysql> SELECT DEGREES(PI());
        -> 180

     

    RADIANS(X)

    说明:将 X 由读转换为弧度 

    mysql> SELECT RADIANS(180);
        -> 3.141592653589793

     

    ABS(X)

    说明:返回 X 的绝对值 

    mysql> SELECT ABS(1);
        -> 1
    mysql> SELECT ABS(-1);
        -> 1

     

    CEIL(X)

    说明:返回不小于 X 的最小整数值

    mysql> SELECT CEIL(1.2);
        -> 2
    mysql> SELECT CEIL(1.0);
        -> 1

     

    CEILING(X)

    说明:与 CEIL(X) 同义

     

    FLOOR(X)

    说明:返回不大于 X 的最小整数值

    mysql> SELECT FLOOR(1.2);
        -> 1
    mysql> SELECT FLOOR(-1.2);
        -> -2

     

    CONV(N, from_base, to_base)

    说明:将 N 由 from_base 进制表示转换为 to_base 进制表示

    mysql> SELECT CONV('F', 16, 2);
        -> '1111'
    mysql> SELECT CONV(12, 8, 10);
        -> '10'

     

    CRC32(expr)

    说明:返回表达式 expr 的 32 位循环冗余校验值

    mysql> SELECT CRC32('MySQL');
        -> 3259397556

     

    EXP(X)

    说明:返回自然底数 e 的 X 次方值

    mysql> SELECT EXP(1);
        -> 2.718281828459045

     

    LN(X)

    说明:返回 X 的自然对数

    mysql> SELECT LN(EXP(2));
        -> 2

     

    LOG(X)

    说明:与 LN(X) 同义

     

    LOG(B, X)

    说明:返回以 B 为底的 X 的对数

    mysql> SELECT LOG(2, 4);
        -> 2

     

    LOG2(X)

    说明:返回以 2 为底的 X 的对数

     

    LOG10(X)

    说明:返回以 10 为底的 X 的对数

    mysql> SELECT LOG10(100);
        -> 2

     

    MOD(N, M) or N MOD M or N % M

    说明:返回 N 除以 M 的余数

    mysql> SELECT MOD(10, 3)
        -> 1
    mysql> SELECT MOD(10.1, 3);
        -> 1.1

     

    POW(X, Y)

    说明:返回 X 的 Y 次方 

    mysql> SELECT POW(2, 10);
        -> 1024

     

    POWER(X, Y) 

    说明:与 POW(X,Y) 同义

     

    RAND()

    说明:返回 0 到 1 的随机数

    mysql> SELECT RAND();
        -> 0.23654564771479522
    mysql> SELECT RAND();
        -> 0.7700120906997585

     

    RAND(N)

    说明:返回 0 到 1 的随机数,种子值指定为 N

    mysql> SELECT RAND(1);
        -> 0.40540353712197724
    mysql> SELECT RAND(1);
        -> 0.40540353712197724
    mysql> SELECT RAND(2);
        -> 0.6555866465490187

    注:返回 a 到 b 之间的随机数:FLOOR(a + RAND() * (b – a + 1))

    例如,返回 10 到 15 之间的随机数:

    mysql> SELECT FLOOR(10 + (RAND() * 6));

     

    ROUND(X)

    说明:返回 X 四舍五入后的整数值

    mysql> SELECT ROUND(10.25);
        -> 10
    mysql> SELECT ROUND(10.50);
        -> 11
    mysql> SELECT ROUND(10.75);
        -> 11

     

    ROUND(X, D)

    说明:返回 X 四舍五入后保留 D 位小数的值

    mysql> SELECT ROUND(10.002, 2);
        -> 10
    mysql> SELECT ROUND(10.007, 2);
        -> 10.01
    mysql> SELECT ROUND(10.005, 2);
        -> 10.01

     

    SIGN(X)

    说明:X>0 则返回 1,X<0 则返回 -1,X=0 则返回 0

    mysql> SELECT SIGN(10);
        -> 1
    mysql> SELECT SIGN(-10);
        -> -1
    mysql> SELECT SIGN(0);
        -> 0

     

    SQRT(X)

    说明:返回非负数 X 的二次方根

    mysql> SELECT SQRT(4);
        -> 2
    mysql> SELECT SQRT(-1);
        -> NULL

     

    TRUNCATE(X, D)

    说明:返回被舍去至小数点后 D 位的数字 X。若 D 的值为 0,则结果不带有小数点或不带有小数部分。可以将 D 设为负数,则截去(归零)X 小数点左起第 D 位开始后面所有低位的值。

    mysql> SELECT TRUNCATE(123.456, 2);
        -> 123.45
    mysql> SELECT TRUNCATE(123.456, 0);
        -> 123
    mysql> SELECT TRUNCATE(123.456, -2);
        -> 100

    日期和时间函数

    ADDDATE(expr, days)

    说明:向日期加上指定的天数

    mysql> SELECT ADDDATE('2014-10-01', 7);
        -> '2014-10-08'

     

    ADDDATE(date, INTERVAL expr unit)

    说明:向日期加上指定的时间间隔

    mysql> SELECT ADDDATE('2014-10-01', INTERVAL 31 DAY);
        -> '2014-11-01'
    mysql> SELECT ADDDATE('2014-10-01', INTERVAL 6 MONTH);
        -> '2015-04-01'
    mysql> SELECT ADDDATE('2014-10-01', INTERVAL 2 QUARTER);
        -> '2015-04-01'
    mysql> SELECT ADDDATE('2014-10-01', INTERVAL -1 YEAR);
        -> '2013-10-01'

     

    DATE_ADD(date,INTERVAL expr unit)

    说明:与 ADDDATE(date, INTERVAL expr unit) 同义 

    SUBDATE(expr, days)

    说明:向日期减去指定的天数 

    mysql> SELECT SUBDATE('2014-10-01', INTERVAL 1 QUARTER);
        -> '2014-07-01'

     

    SUBDATE(date, INTERVAL expr unit)

    说明:向日期减去指定的时间间隔

    mysql> SELECT SUBDATE('2014-10-01', INTERVAL 1 QUARTER);
        -> '2014-07-01'

     

    DATE_SUB(date, INTERVAL expr unit)

    说明:与SUBDATE(date, INTERVAL expr unit)同义

     

    ADDTIME(expr1, expr2)

    说明:返回日期时间表达式 expr1 加上日期时间表达式 expr2 后的结果

    mysql> SELECT ADDTIME("2014-10-01 00:00:00", "02:30:00");
        -> '2014-10-01 02:30:00'
    mysql> SELECT ADDTIME("2014-10-01 00:00:00", "01 02:30:00");
        -> '2014-10-02 02:30:00'

     

    SUBTIME(expr1, expr2)

    说明:返回日期时间表达式 expr1 减去日期时间表达式 expr2 后的结果

    mysql> SELECT SUBTIME("2014-10-01 00:00:00", "02:30:00");
        -> '2014-09-30 21:30:00'
    mysql> SELECT SUBTIME("2014-10-01 00:00:00", "01 02:30:00");
        -> '2014-09-29 21:30:00'

     

    CONVERT_TZ(dt, from_tz, to_tz)

    说明:返回将日期时间 dt 从时区 from_tz 转成时区 to_tz 后的结果

    mysql> SELECT CONVERT_TZ('2014-10-01 08:00:00', '+08:00', '+9:00');
        -> '2014-10-01 09:00:00'

     

    CURDATE()

    说明:返回当前日期

    mysql> SELECT CURDATE();
        -> '2014-10-26'

     

    CURRENT_DATE()

    说明:与 CURDATE() 同义

     

    CURTIME() 

    说明:返回当前时间 

    mysql> SELECT CURTIME();
        -> '21:02:42'

     

    CURRENT_TIME()

    说明:与 CURTIME() 同义

     

    NOW()

    说明:返回当前日期时间

    mysql> SELECT NOW();
        -> '2014-10-26 21:03:06'

     

    LOCALTIME()

    说明:与 NOW() 同义

     

    LOCALTIMESTAMP()

    说明:与 NOW() 同义

     

    SYSDATE()

    说明:返回当前的系统日期时间

    mysql> SELECT SYSDATE();
        -> '2014-10-26 21:03:06'

     

    DATE(expr)

    说明:提取表达式 expr 的日期部分

    mysql> SELECT DATE('2014-10-01 08:00:00');
        -> '2014-10-01'

     

    TIME(expr)

    说明:提取表达式 expr 的时间部分

    mysql> SELECT TIME('2014-10-01 08:00:00');
        -> '08:00:00'

     

    DATEDIFF(expr1, expr2)

    说明:返回表达式 expr1 和表达式 expr2 的日期间隔

    mysql> SELECT DATEDIFF('2014-10-01 08:00:00', '2014-10-02 08:00:00');
        -> -1
    mysql> SELECT DATEDIFF('2014-10-01 23:59:59', '2014-10-02 00:00:00');
        -> -1

     

    TIMEDIFF(expr1,expr2)

    说明:返回表达式 expr1 和表达式 expr2 的时间间隔 

    mysql> SELECT DATEDIFF('2014-10-01 23:59:59', '2014-10-02 00:00:00');
        -> -1

     

    DATE_FORMAT(date,format)

    说明:格式化日期

     格式符  说明
    %a  工作日的缩写名称  (Sun..Sat)
    %b  月份的缩写名称  (Jan..Dec)
    %c  月份,数字形式(0..12)
    %D  带有英语后缀的该月日期  (0th, 1st, 2nd, 3rd, ...) 
    %d  该月日期,数字形式 (00..31)
    %e  该月日期,数字形式(0..31)
    %f  微秒 (000000..999999)
    %H  小时(00..23)
    %h  小时(01..12)
    %I  小时 (01..12)
    %i  分钟,数字形式 (00..59)
    %j  一年中的天数 (001..366)
    %k  小时 (0..23)
    %l  小时 (1..12)
    %M  月份名称 (January..December)
    %m  月份, 数字形式 (00..12)
    %p  上午(AM)或下午( PM)
    %r  时间,12 小时制 (hh:mm:ss AM or PM)
    %S  秒 (00..59)
    %s  秒 (00..59)
    %T  时间,24 小时制 (hh:mm:ss)
    %U  周 (00..53), 其中周日为每周的第一天
    %u  周 (00..53), 其中周一为每周的第一天
    %V  周 (01..53),其中周日为每周的第一天;和 %X 同时使用
    %v  周 (01..53), 其中周一为每周的第一天;和 %x 同时使用
    %W  工作日名称 (Sunday..Saturday)
    %w  一周中的每日 (0=周日..6=周六)
    %X  该周的年份,其中周日为每周的第一天,数字形式,4 位数;和 %V 同时使用 
    %x  该周的年份,其中周一为每周的第一天, 数字形式,4 位数;和 %v 同时使用
    %Y  年份, 数字形式,4 位数
    %y  年份, 数字形式,2 位数
    %%  % 字符
    mysql> SELECT DATE_FORMAT('2014-10-01 08:00:00', '%W %M %Y');
        -> 'Wednesday October 2014'

     

    STR_TO_DATE(str,format)

    说明:DATE_FORMAT(date, format) 的逆过程,将给定的字符串 str 按 format 格式解析成日期

     

    TIME_FORMAT(time, format)

    说明:用法与 DATE_FORMAT 一样,但可能只处理时、分、秒和微秒

    mysql> SELECT TIME_FORMAT('16:30:00', '%h:%i %p');
        -> '04:30 PM'

     

    DAYOFMONTH(date)

    说明:返回该月份的第几天

    mysql> SELECT DAYOFMONTH('2014-10-08');
        -> 8

     

    DAYOFYEAR(date)

    说明:返回该年的第几天

    mysql> SELECT DAYOFYEAR('2014-12-31');
        -> 365

     

    DAYOFWEEK(date)

    说明:返回星期对应的索引值(1 表示周日,2 表示周一,…… 7 表示周六)

    mysql> SELECT DAYOFWEEK('2014-10-20');
        -> 2

     

    WEEKDAY(date)

    说明:返回星期对应的索引值(0 表示周一,1 表示周二,…… 6 表示周日)

    mysql> SELECT WEEKDAY('2014-10-20');
        -> 0

     

    DAYNAME(date)

    说明:返回星期的名称

    mysql> SELECT DAYNAME('2014-10-20');
        -> 'Monday'

     

    MONTHNAME(date)

    说明:返回月份的名称

    mysql> SELECT MONTHNAME('2014-10-08');
        -> 'October'

     

    EXTRACT(unit FROM date)

    说明:提取日期 date 中的 unit 部分

    mysql> SELECT EXTRACT(YEAR FROM '2014-10-08');
        -> 2014
    mysql> SELECT EXTRACT(YEAR_MONTH FROM '2014-10-08');
        -> 201410
    mysql> SELECT EXTRACT(HOUR_SECOND FROM '2014-10-08 12:30:00');
        -> 123000

     

    FROM_UNIXTIME(unix_timestamp) or FROM_UNIXTIME(unix_timestamp, format)

    说明:将时间戳 unix_timestamp 格式化成字符串形式,format 同 DATE_FORMAT

    mysql> SELECT FROM_UNIXTIME(1414066392)
        -> '2014-10-23 20:13:12'
    mysql> SELECT FROM_UNIXTIME(1414066392) + 0
        -> 20141023201312

     

    GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})

    说明返回:返回一个格式字符串,结果依赖参数的组合:

    函数调用 结果
     GET_FORMAT(DATE,'USA')   '%m.%d.%Y'
     GET_FORMAT(DATE,'JIS')  '%Y-%m-%d'
     GET_FORMAT(DATE,'ISO')  '%Y-%m-%d'
     GET_FORMAT(DATE,'EUR')  '%d.%m.%Y'
     GET_FORMAT(DATE,'INTERNAL')   '%Y%m%d'
     GET_FORMAT(DATETIME,'USA')  '%Y-%m-%d-%H.%i.%s' 
     GET_FORMAT(DATETIME,'JIS')  '%Y-%m-%d %H:%i:%s'
     GET_FORMAT(DATETIME,'ISO')  '%Y-%m-%d %H:%i:%s'
     GET_FORMAT(DATETIME,'EUR')  '%Y-%m-%d-%H.%i.%s'
     GET_FORMAT(DATETIME,'INTERNAL')   '%Y%m%d%H%i%s'
     GET_FORMAT(TIME,'USA')  '%h:%i:%s %p'
     GET_FORMAT(TIME,'JIS')  '%H:%i:%s'
     GET_FORMAT(TIME,'ISO')  '%H:%i:%s'
     GET_FORMAT(TIME,'EUR')  '%H.%i.%S'
     GET_FORMAT(TIME,'INTERNAL')  '%H%i%s'
    mysql> SELECT GET_FORMAT(DATE, 'EUR');
        -> '%d.%m.%Y'

     

    LAST_DAY(date)

    说明:返回当月的最后一天

    mysql> SELECT LAST_DAY('2014-10-08');
        -> '2014-10-31'

     

    YEAR(date)

    说明:返回日期对应的年份

    mysql> SELECT YEAR('2014-10-08');
        -> 2014

     

    QUARTER(date)

    说明:返回日期对应的季度

    mysql> SELECT QUARTER('2014-10-08');
        -> 4

     

    MONTH(date)

    说明:返回日期对应的月份

    mysql> SELECT MONTH('2014-10-08');
        -> 10

     

    WEEK(date[, mode])

    说明:返回日期对应的星期数,参数 mode 为计算规则,描述如下:

     mode   一周的第一天   范围  Week 1 is the first week …
    0 星期日  0-53   with a Sunday in this year
    1 星期一  0-53  with 4 or more days this year
    2 星期日  1-53  with a Sunday in this year
    3 星期一  1-53  with 4 or more days this year
    4 星期日  0-53  with 4 or more days this year 
    5 星期一  0-53  with a Sunday in this year
    6 星期日  1-53  with 4 or more days this year
    7 星期一  1-53  with a Sunday in this year
    mysql> SELECT WEEK('2014-01-01', 1);
        -> 1

     

    DAY(date)

    说明:与 DAYOFMONTH(date) 同义

     

    HOUR(time)

    说明:返回 time 对应的小时数

    mysql> SELECT HOUR('12:20:15');
        -> 12

     

    MINUTE(time)

    说明:返回 time 对应的分钟数

    mysql> SELECT MINUTE('12:20:15');
        -> 20

     

    SECOND(time)

    说明:返回time对应的秒数

    mysql> SELECT SECOND('12:20:15');
        -> 15

     

    MICROSECOND(expr)

    说明:返回时间表达式 expr 对应的微秒数

    mysql> SELECT MICROSECOND('12:00:00.123456');
        -> 123456

     

    MAKEDATE(year, dayofyear)

    说明:根据给定的年份和天数得到一个日期

    mysql> SELECT MAKEDATE(2014, 32);
        -> '2014-02-01'

     

    MAKETIME(hour, minute, second)

    说明:根据给定的时分秒得到一个时间

    mysql> SELECT MAKETIME(12,30,0);
        -> '12:30:00'

     

    PERIOD_ADD(P, N)

    说明:添加 N 个月至周期P(格式为 YYMM 或 YYYYMM ),返回格式为 YYYYMM ,注意周期参数不是日期值

    mysql> SELECT PERIOD_ADD(201406, 3);
        -> 201409
    mysql> SELECT PERIOD_ADD(9801, 36);
        -> 200101

     

    PERIOD_DIFF(P1, P2)

    说明:返回周期 P1 和 P2 之间的月份数,P1 和 P2 的格式为 YYMM 或 YYYYMM,注意周期参数不是日期值

    mysql> SELECT PERIOD_DIFF(201410, 1310);
        -> 12

     

    SEC_TO_TIME(seconds)

    说明:将给定的秒数转换成时分秒格式

    mysql> SELECT SEC_TO_TIME(3661);
        -> '01:01:01'
    mysql> SELECT SEC_TO_TIME(3661) + 0;
        -> 10101

     

    TIME_TO_SEC(time)

    说明:将时间 time 转换为秒数

    mysql> SELECT TIME_TO_SEC('02:00:01');
        -> 7201

     

    TIMESTAMP(expr)

    说明:返回表达式 expr 的日期时间值

    mysql> SELECT TIMESTAMP('2014-10-01');
        -> '2014-10-01 00:00:00'

     

    TIMESTAMP(expr1, expr2)

    说明:返回将表达式 expr2 添加到表达式 expr1 的结果的日期时间值

    mysql> SELECT TIMESTAMP('2014-10-01 12:00:00','12:00:00');
        -> '2014-10-02 00:00:00'

     

    TIMESTAMPADD(unit, interval, datetime_expr)

    说明:向给定的日期时间值加上指定的时间间隔

    mysql> SELECT TIMESTAMPADD(MONTH, 1, '2014-10-01 12:00:00');
        -> '2014-11-01 12:00:00'
    mysql> SELECT TIMESTAMPADD(HOUR, -1, '2014-10-01 12:00:00');
        -> '2014-10-01 11:00:00'

     

    TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)

    说明:返回日期时间表达式 datetime_expr1 和 datetime_expr2 的时间间隔,单位由 unit 给定

    mysql> SELECT TIMESTAMPDIFF(HOUR, '2014-10-01 12:00:00', '2014-10-01 13:30:00');
        -> 1

     

    UNIX_TIMESTAMP()

    说明:返回当前时间的 UNIX 时间戳

    mysql> SELECT UNIX_TIMESTAMP();
        -> 1414330231

     

    UNIX_TIMESTAMP(date)

    说明:返回 date 对应的 UNIX 时间戳

    mysql> SELECT UNIX_TIMESTAMP('2014-10-01 12:00:00');
        -> 1412136000

     

    UTC_DATE()

    说明:返回当前的 UTC 日期

    mysql> SELECT UTC_DATE();
        -> '2014-10-26'

     

    UTC_TIME()

    说明:返回当前的UTC时间

    mysql> SELECT UTC_TIME();
        -> '13:31:18'

     

    UTC_TIMESTAMP()

    说明:返回当前的 UTC 日期时间

    mysql> SELECT UTC_TIMESTAMP();
        -> '2014-10-26 13:31:18'

     

    WEEKOFYEAR(date)

    说明:返回日期对应的星期数,相当于 WEEK(date, 3)

    mysql> SELECT WEEKOFYEAR('2014-01-01');
        -> 1

     

    YEARWEEK(date[, mode])

    说明:日期对应的年份和星期数,参数 mode 与 WEEK() 作用相同。

    mysql> SELECT YEARWEEK('2014-01-01');
        -> 201352

    加密和压缩函数

    AES_ENCRYPT(str, key_str) and AES_DECRYPT(crypt_str, key_str)

    说明:AES 加密解密函数

    mysql> SELECT AES_DECRYPT(AES_ENCRYPT('hello', 'MySQL'), 'MySQL');
        -> 'hello'

     

    DES_ENCRYPT(str[, {key_num | key_str}]) and DES_DECRYPT(crypt_str[, key_str])

    说明:DES 加密解密函数

    mysql> SELECT DES_DECRYPT(DES_ENCRYPT('hello', 'MySQL'), 'MySQL');
        -> 'hello'

     

    ENCODE(str, pass_str) and DECODE(crypt_str, pass_str)

    说明:以 pass_str 作为密码对 str 进行加密解密

    mysql> SELECT DECODE(ENCODE('hello', 'MySQL'), 'MySQL');
        -> 'hello'

     

    ENCRYPT(str[, salt])

    说明:使用 Unix 的 crypt() 系统调用加密,Windows 不支持该函数

    mysql> SELECT ENCRYPT('hello');
        -> 'VxuFAJXVARROc'

     

    MD5(str)

    说明:32 位 MD5 加密

    mysql> SELECT MD5('hello');
        -> '5d41402abc4b2a76b9719d911017c592'

     

    SHA(str) or SHA1(str)

    说明:SHA1 加密

    mysql> SELECT SHA1('hello');
        -> 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d'

     

    SHA2(str, hash_length)

    说明:SHA2 加密,hash_length 的值只能是 224, 256, 384, 512 或 0(等同于 256)

    mysql> SELECT SHA2('hello', 256);
        -> '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'

     

    PASSWORD(str)

    说明:返回字符串 str 加密后的密文,PASSWORD() 加密是单向不可逆的。

    mysql> SELECT PASSWORD('hello');
        -> '*6B4F89A54E2D27ECD7E8DA05B4AB8FD9D1D8B119'

    注:PASSWORD() 函数在 MySQL 服务器中的鉴定系统使用;不应将它用在个人的应用程序中。为达到同样目的,可使用 MD5() 或 SHA1() 代替。

     

    COMPRESS(string_to_compress)

    说明:压缩字符串 string_to_compress

    mysql> SELECT LENGTH(COMPRESS(REPEAT('a', 1000)));
        -> 21
    mysql> SELECT LENGTH(COMPRESS('a'));
        -> 13
    mysql> SELECT LENGTH(COMPRESS(''));
        -> 0

     

    UNCOMPRESS(string_to_uncompress)

    说明:将被压缩的字符串解压

    mysql> SELECT UNCOMPRESS(COMPRESS('hello'));
        -> 'hello'

     

    UNCOMPRESSED_LENGTH(compressed_string)

    说明:返回被压缩的字符串 compressed_string 在被压缩前的长度

    mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a', 1000)));
        -> 1000

     

    VALIDATE_PASSWORD_STRENGTH(str)

    说明:验证密码的强度,值的范围是 0(弱)到 100(强),如果没有安装 validate_password 插件值永远是 0,该函数在 5.6.6 版本新增的。

    Password Test Return Value
     Length < 4   0
     Length ≥ 4 and < validate_password_length   25
     Satisfies policy 1  (LOW) 50
     Satisfies policy 2  (MEDIUM) 75 
     Satisfies policy 3  (STRONG) 100 

    信息函数

    CHARSET(str)

    说明:返回字符串自变量的字符集

    mysql> SELECT CHARSET('数据库');
        -> 'utf8'

     

    COERCIBILITY(str)

    说明:返回字符串自变量的整序可压缩性值。

     Coercibility  Meaning Example
    0  Explicit collation  Value with COLLATE clause 
    1  No collation  Concatenation of strings with different collations 
    2  Implicit collation  Column value, stored routine parameter or local variable 
    3  System constant   USER() return value
    4  Coercible  Literal string
    5  Ignorable  NULL or an expression derived from NULL
    mysql> SELECT COERCIBILITY('hello');
        -> 4

     

    COLLATION(str)

    说明:返回字符串自变量的排序方式 

    mysql> SELECT COLLATION('hello')
        -> 'utf8_general_ci'

     

    CONNECTION_ID()

    说明:返回连接的连接 ID(线程 ID)

    mysql> SELECT CONNECTION_ID();
        -> 13

     

    CURRENT_USER()

    说明:返回被验证过的用户名和主机

    mysql> SELECT CURRENT_USER();
        -> 'root@localhost'

     

    USER()

    说明:返回提供给客户端的用户名和主机

    mysql> SELECT USER();
        -> 'root@localhost'

     

    SESSION_USER()

    说明:与 USER() 同义

     

    SYSTEM_USER()

    说明:与 USER() 同义

     

    DATABASE()

    说明:返回默认(当前)的数据库名

    mysql> SELECT DATABASE()
        -> 'world'

     

    SCHEMA()

    说明:与 DATABASE() 同义

     

    VERSION()

    说明:返回当前 MySQL 服务器的版本

    mysql> SELECT VERSION();
        -> '5.6.10'

    其他函数

    BIT_COUNT(N)

    说明:返回数值 N 对应的二进制表示被置一的个数。

    mysql> SELECT BIT_COUNT(15);
        -> 4

     

    DEFAULT(col_name)

    说明:返回字段 col_name 的默认值

     

    INET_ATON(expr)

    说明:返回 IPv4 地址对应的数值

    mysql> SELECT INET_ATON('127.0.0.1');
        -> 2130706433

    INET_NTOA(expr)

    说明:返回数值对应的 IPv4 地址

    mysql> SELECT INET_NTOA(2130706433);
        -> '127.0.0.1'

     

    INET6_ATON(expr)

    说明:返回 IPv6 地址对应的数值

    mysql> SELECT HEX(INET6_ATON('fdfe::5a55:caff:fefa:9089'));
        -> 'FDFE0000000000005A55CAFFFEFA9089'

     

    INET6_NTOA(expr)

    说明:返回数值对应的 IPv6 地址

    mysql> SELECT INET6_NTOA(UNHEX('FDFE0000000000005A55CAFFFEFA9089'));
        -> 'fdfe::5a55:caff:fefa:9089'

     

    IS_IPV4(expr)

    说明:判断 expr 是否为一个 IPv4 地址

    mysql> SELECT IS_IPV4('127.0.0.1');
        -> 1
    mysql> SELECT IS_IPV4('127.0.0.256');
        -> 0

     

    IS_IPV4_COMPAT(expr)

    说明:判断 expr 是否为一个 IPv4 兼容地址

    mysql> SELECT IS_IPV4_COMPAT(INET6_ATON('::135.75.43.52'));
        -> 1

     

    IS_IPV4_MAPPED(expr)

    说明:判断 expr 是否为一个 IPv4 映射地址

    mysql> SELECT IS_IPV4_MAPPED(INET6_ATON('::ffff:1.2.3.4'));
        -> 1

     

    IS_IPV6(expr)

    说明:判断 expr 是否为一个 IPv6 地址

    mysql> SELECT IS_IPV6('fdfe::5a55:caff:fefa:9089');
        -> 1

     

    UUID()

    说明:返回通用唯一识别码

    mysql> SELECT UUID();
        -> 'ad238618-6661-11e4-87cf-b01041757ad4'

     

    UUID_SHORT()

    说明:返回整数值的 UUID

    mysql> SELECT UUID_SHORT();
        -> '23742392683200512'

     

    SLEEP(duration)

    说明:休眠 duration 秒

  • 相关阅读:
    thinkphp5分页
    thinkphp 获取器、修改器
    Thinkphp中对数据库的基础操作
    MYSQL 数据库内容的分页展示
    单例模式连接数据库
    简单的通过ajax ‘POST’ 方法实现与后台数据交互
    PHP中 .= 的意思
    mysqli 简单的php注册登录功能
    4.4
    梦断代码阅读笔记1
  • 原文地址:https://www.cnblogs.com/huey/p/4823482.html
Copyright © 2011-2022 走看看