字符串函数
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)数字
HEX(str)
- mysql> SELECT HEX(256);
- -> 100
HEX(str)
说明:返回字符串str每个字符对应的十六进制ASCII值
UNHEX(str)
- mysql> SELECT HEX('MySQL');
- -> '4D7953514C'
UNHEX(str)
说明:HEX(str)的逆过程
- mysql> SELECT UNHEX('4D7953514C');
- -> 'MySQL'
BIT_LENGTH(str)
说明:返回字符串str的比特数
CHARACTER_LENGTH(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
说明:与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字符组成的字符串
CONCAT(str1,str2,...)
- 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_WS(separator,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拼接字符串
ELT(N,str1,str2,str3,...)
- 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个元素
EXPORT_SET(bits,on,off[,separator[,number_of_bits]])
- 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)
FIELD(str,str1,str2,str3,...)
- mysql> SELECT EXPORT_SET(6, '1', '0', '', 10);
- -> '0110000000'
FIELD(str,str1,str2,str3,...)
说明:返回字符串str在字符串列表中的位置
FIND_IN_SET(str,strlist)
- mysql> SELECT FIELD('str', 'str1', 'str2', 'str3');
- -> 0
- mysql> SELECT FIELD('str2', 'str1', 'str2', 'str3');
- -> 2
FIND_IN_SET(str,strlist)
说明:返回字符串str在字符串列表strlist中的位置,其中strlist的元素是由','隔开
FORMAT(X,D[,locale])
- 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')
TO_BASE64(str)
- 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编码
FROM_BASE64(str)
- mysql> SELECT TO_BASE64('MySQL');
- -> 'TXlTUUw='
FROM_BASE64(str)
说明:对字符串str进行BASE64解码
INSERT(str,pos,len,newstr)
- mysql> SELECT FROM_BASE64('TXlTUUw=');
- -> 'MySQL'
INSERT(str,pos,len,newstr)
说明:将字符串str从位置pos开始的len个字符替换成新字符串newstr
INSTR(str,substr)
- 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中第一次出现的位置
LOWER(str)
- mysql> SELECT INSTR('MySQL', 'SQL');
- -> 3
- mysql> SELECT INSTR('Oracle', 'sql');
- -> 0
LOWER(str)
说明:根据最新的字符映射集(默认是latin1)将字符串转换为小写字母
LCASE(str)
- mysql> SELECT LOWER('MySQL');
- -> 'mysql'
LCASE(str)
说明:与LOWER(str)同义
UPPER(str)
UPPER(str)
说明:根据最新的字符映射集(默认是latin1)将字符串转换为大写字母
UCASE(str)
- 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个字符
LOAD_FILE(file_name)
- mysql> SELECT RIGHT('MySQL', 3);
- -> 'SQL'
说明:返回从文件file_name读取的内容。该文件必须存在于服务器上,指定完整的路径名,还要拥有文件的权限,并且文件的内容是可读的,内容长度小于max_allowed_packet
LOCATE(substr,str)
- mysql> SELECT LOAD_FILE('D:\\tmp.txt');
LOCATE(substr,str)
说明:返回字串substr在字符串str中第一次出现的位置
LOCATE(substr,str,pos)
- mysql> SELECT LOCATE('SQL' , 'MySQL');
- -> 3
- mysql> SELECT LOCATE('SQL' , 'Oracle');
- -> 0
LOCATE(substr,str,pos)
说明:返回字串substr在字符串str中第pos个字符后第一次出现的位置
LPAD(str,len,padstr)
- 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
LTRIM(str)
- mysql> SELECT RPAD('MySQL', 10, '*');
- -> 'MySQL*****'
- mysql> SELECT RPAD('MySQL', 2, '*');
- -> 'My'
说明:移除字符串左边的空白字符
RTRIM(str)
- mysql> SELECT LTRIM(' MySQL ');
- -> 'MySQL '
说明:移除字符串右边的空白字符
- mysql> SELECT RTRIM(' MySQL ');
- -> ' MySQL'
TRIM([remstr FROM] str)
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
说明:移除字符串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值不会被添加到结果中。
ORD(str)
- 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)相同的返回值
QUOTE(str)
说明:引证一个字符串,由此产生一个在SQL语句中可用作完全转义数据值的结果。返回的字符串由单引号标注,每例都带有单引号(‘'’)、反斜线符号(‘\’)、 ASCII NUL以及前面有反斜线符号的Control-Z。如果自变量的值为NULL, 则返回不带单引号的单词 “NULL” 。
REPEAT(str,count)
- 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次组成的字符串
REPLACE(str,from_str,to_str)
- mysql> SELECT REPEAT('MySQL', 3);
- -> 'MySQLMySQLMySQL'
- mysql> SELECT REPEAT('MySQL', 0);
- -> ''
REPLACE(str,from_str,to_str)
说明:将字符串str中的子串from_str替换成字符串to_str
REVERSE(str)
- mysql> SELECT REPLACE('abc123abc', 'abc', 'xyz');
- -> 'xyz123xyz'
REVERSE(str)
说明:返回与字符串str相反顺序的字符串
SPACE(N)
- mysql> SELECT REVERSE('MySQL')
- -> 'LQSyM'
说明:返回由N个空格符组成的字符串
SUBSTR(str,pos)
- mysql> SELECT SPACE(3);
- -> ' '
SUBSTR(str,pos)
说明:返回字符串str从pos位置开始后的子串
SUBSTR(str FROM 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)
SUBSTR(str,pos,len)
说明:返回字符串str从pos位置开始,长度为len的子串
SUBSTR(str FROM pos FOR 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)
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)
MID(str,pos,len)
说明:与SUBSTR(str,pos,len)同义
SUBSTRING_INDEX(str,delim,count)
说明:count大于0时返回字符串str从左数第count个定界符delim左边的子串,count小于0时返回字符串str从右数第count个定界符delim右边的子串
STRCMP(expr1,expr2)
说明:返回字符串的比较结果
- 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()
说明:返回π值
SIN(X)
说明:返回X的正弦值
ASIN(X)
说明:返回X的反正弦值,X不在-1和1之间则返回NULL
COS(X)
说明:返回X的余弦值
ACOS(X)
说明:返回X的反余弦值,X不在-1和1之间则返回NULL
ATAN(X)
说明:返回X的反正切值
ATAN(Y,X)
说明:返回π值
- 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)
ATAN2(Y,X)
说明:返回 两个变量Y和X的反正切值,其值相当于ATAB(Y/N)
TAN(X)
说明:返回X的正切值
COT(X)
说明:返回X的余切值
DEGREES(X)
说明:将X由弧度转换为度
RADIANS(X)
说明:将X由读转换为弧度
ABS(X)
说明:返回X的绝对值
CEIL(X)
说明:返回不小于X的最小整数值
CEILING(X)
说明:与CEIL(X)同义
FLOOR(X)返回不大于X的最小整数值
CONV(N,from_base,to_base)
说明:将N由from_base进制表示转换为to_base进制表示
CRC32(expr)
说明:返回表达式expr的32位循环冗余校验值
EXP(X)
说明:返回自然底数e的X次方值
LN(X)
说明:返回X的自然对数
LOG(X)
说明:与LN(X)同义
LOG(B,X)
说明:返回以B为底的X的对数
LOG2(X)
说明:返回以2为底的X的对数
LOG10(X)
说明:返回以10为底的X的对数
MOD(N,M)
N MOD M
N % M
说明:返回N除以M的余数
POW(X,Y)
说明:返回X的Y次方
POWER(X,)
说明:与POW(X,Y)同义
RAND()
说明:返回0到1的随机数
RAND(N)
说明:返回0到1的随机数,种子值指定为N
注:返回a到b之间的随机数:FLOOR(a + RAND() * (b – a + 1))
例如,返回10到15之间的随机数:
ROUND(X)
说明:返回X四舍五入后的整数值
ROUND(X,D)
说明:返回X四舍五入后保留D位小数的值
SIGN(X)
说明:X>0则返回1,X<0则返回-1,X=0则返回0
SQRT(X)
说明:返回非负数X的二次方根
TRUNCATE(X,D)
说明:返回被舍去至小数点后D位的数字X。若D的值为0,则结果不带有小数点或不带有小数部分。可以将D设为负数,则截去(归零)X小数点左起第D位开始后面所有低位的值。
- 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的对数
- mysql> SELECT LOG2(4);
- -> 2
LOG10(X)
说明:返回以10为底的X的对数
- mysql> SELECT LOG10(100);
- -> 2
MOD(N,M)
N MOD M
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,)
说明:与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
例如,返回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)
说明:向日期加上指定的天数
ADDDATE(date,INTERVAL expr unit)
说明:向日期加上指定的时间间隔
DATE_ADD(date,INTERVAL expr unit)
说明:与ADDDATE(date,INTERVAL expr unit)同义
SUBDATE(expr,days)
说明:向日期减去指定的天数
SUBDATE(date,INTERVAL expr unit)
说明:向日期减去指定的时间间隔
DATE_SUB(date,INTERVAL expr unit)
说明:与SUBDATE(date,INTERVAL expr unit)同义
ADDTIME(expr1,expr2)
说明:返回日期时间表达式expr1加上日期时间表达式2后的结果
SUBTIME(expr1,expr2)
说明:返回日期时间表达式expr1减去日期时间表达式2后的结果
CONVERT_TZ(dt,from_tz,to_tz)
说明:返回将日期时间dt从时区from_tz转成时区to_tz后的结果
CURDATE()
说明:返回当前日期
CURRENT_DATE()
说明:与CURDATE()同义
CURTIME()
说明:返回当前时间
CURRENT_TIME()
说明:与CURTIME()同义
NOW()
说明:返回当前日期时间
LOCALTIME()
说明:与NOW()同义
LOCALTIMESTAMP()
说明:与NOW()同义
SYSDATE()
说明:返回当前的系统日期时间
DATE(expr)
说明:提取表达式expr的日期部分
TIME(expr)
说明:提取表达式expr的时间部分
DATEDIFF(expr1,expr2)
说明:返回表达式expr1和表达式expr2的日期间隔
TIMEDIFF(expr1,expr2)
说明:返回表达式expr1和表达式expr2的时间间隔
DATE_FORMAT(date,format)
说明:格式化日期
说明:向日期加上指定的天数
- 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', 1);
- -> '2014-09-30'
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加上日期时间表达式2后的结果
- 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减去日期时间表达式2后的结果
- 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或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格式解析成日期
- mysql> SELECT STR_TO_DATE('04/31/2014', '%m/%d/%Y');
- -> '2014-04-31'
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)
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对应的小时数
MINUTE(time)
说明:返回time对应的分钟数
SECOND(time)
说明:返回time对应的秒数
MICROSECOND(expr)
说明:返回时间表达式expr对应的微秒数
MAKEDATE(year,dayofyear)
说明:根据给定的年份和天数得到一个日期
MAKETIME(hour,minute,second)
说明:根据给定的时分秒得到一个时间
PERIOD_ADD(P,N)
说明:添加N个月至周期P(格式为YYMM或YYYYMM),返回格式为YYYYMM,注意周期参数不是日期值
PERIOD_DIFF(P1,P2)
说明:返回周期P1和P2之间的月份数,P1和P2的格式为YYMM或YYYYMM,注意周期参数不是日期值
SEC_TO_TIME(seconds)
说明:将给定的秒数转换成时分秒格式
TIME_TO_SEC(time)
说明:将时间time转换为秒数
TIMESTAMP(expr)
说明:返回表达式expr的日期时间值
TIMESTAMP(expr1,expr2)
说明:返回将表达式expr2添加到表达式expr1的结果的日期时间值
TIMESTAMPADD(unit,interval,datetime_expr)
说明:向给定的日期时间值加上指定的时间间隔
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
说明:返回日期时间表达式datetime_expr1和datetime_expr2的时间间隔,单位由unit给定
UNIX_TIMESTAMP()
说明:返回当前时间的UNIX时间戳
UNIX_TIMESTAMP(date)
说明:返回date对应的UNIX时间戳
UTC_DATE()
说明:返回当前的UTC日期
UTC_TIME()
说明:返回当前的UTC时间
UTC_TIMESTAMP()
说明:返回当前的UTC日期时间
WEEKOFYEAR(date)
说明:返回日期对应的星期数,相当于WEEK(date, 3)
YEARWEEK(date[,mode])
说明:日期对应的年份和星期数,参数mode与WEEK()作用相同。
说明:与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);
AES_DECRYPT(crypt_str,key_str);
说明:AES加密解密函数
DES_ENCRYPT(str[,{key_num|key_str}])
DES_DECRYPT(crypt_str[,key_str])
说明:DES加密解密函数
ENCODE(str,pass_str)
DECODE(crypt_str,pass_str)
说明:以pass_str作为密码进行加密解密
ENCRYPT(str[,salt])
说明:使用Unix crypt()系统调用加密,Windows不支持该函数
MD5(str)
说明:32位MD5加密
SHA(str)
SHA1(str)
说明:SHA1加密
SHA2(str,hash_length)
说明:SHA2加密,hash_length的值只能是224,256,384,512或0(等同于256)
PASSWORD(str)
说明:返回字符串str加密后的密文,PASSWORD()加密是单向不可逆的。
注:PASSWORD()函数在MySQL服务器中的鉴定系统使用;你不应将它用在你个人的应用程序中。为达到同样目的,可使用MD5()或SHA1()代替。
COMPRESS(string_to_compress)
说明:压缩字符串string_to_compress
UNCOMPRESS(string_to_uncompress)
说明:将被压缩的字符串解压
UNCOMPRESSED_LENGTH(compressed_string)
说明:返回被压缩的字符串compressed_string在被压缩前的长度
VALIDATE_PASSWORD_STRENGTH(str)
说明:验证密码的强度,值的范围是0(弱)到100(强),如果没有安装validate_password插件值永远是0,该函数在5.6.6版本新增的。
AES_DECRYPT(crypt_str,key_str);
说明:AES加密解密函数
- mysql> SELECT AES_DECRYPT(AES_ENCRYPT('hello', 'MySQL'), 'MySQL');
- -> 'hello'
DES_ENCRYPT(str[,{key_num|key_str}])
DES_DECRYPT(crypt_str[,key_str])
说明:DES加密解密函数
- mysql> SELECT DES_DECRYPT(DES_ENCRYPT('hello', 'MySQL'), 'MySQL');
- -> 'hello'
ENCODE(str,pass_str)
DECODE(crypt_str,pass_str)
说明:以pass_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)
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'
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)
说明:返回字符串自变量的字符集
COERCIBILITY(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'
说明:返回提供给客户端的用户名和主机
- mysql> SELECT USER();
- -> 'root@localhost'
SESSION_USER()
说明:与USER()同义
SYSTEM_USER()
说明:与USER()同义
DATABASE()
说明:返回默认(当前)的数据库名
- mysql> SELECT DATABASE()
- -> 'hueyhome'
SCHEMA()
说明:与DATABASE()同义
VERSION()
说明:返回当前MySQL服务器的版本
- mysql> SELECT VERSION();
- -> '5.6.10'
BIT_COUNT(N)
说明:返回数值N对应的二进制表示被置一的个数。
DEFAULT(col_name)
说明:返回字段col_name的默认值
INET_ATON(expr)
说明:返回IPv4地址对应的数值
INET_NTOA(expr)
说明:返回数值对应的IPv4地址
INET6_ATON(expr)
说明:返回IPv6地址对应的数值
INET6_NTOA(expr)
说明:返回数值对应的IPv6地址
IS_IPV4(expr)
说明:判断expr是否为一个IPv4地址
IS_IPV4_COMPAT(expr)
说明:判断expr是否为一个IPv4兼容地址
IS_IPV4_MAPPED(expr)
说明:判断expr是否为一个IPv4映射地址
IS_IPV6(expr)
说明:判断expr是否为一个IPv6地址
UUID()
说明:返回通用唯一识别码
SLEEP(duration)
说明:休眠duration秒
说明:返回数值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秒