MySQL 内置函数

【精选秒杀】热卖云产品限量抢,云服务器20元/月起,服务稳定,价格更优

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
  • floor(x), 用于获得小于一个数的最大整数值,又称地板函数。
  • ceiling(x),用于获得大于一个数的最小整数值,又称天花板函数。
  • 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):弧度换角度

2 字符串函数

  • char_length(str):返回str所包含的字符数,一个多字节字符算一个字符
  • length(str): 返回字符串的字节长度,如utf8中,一个汉字3字节,数字和字母算一个字节
  • concat(s1, s1, …): 返回连接参数产生的字符串
  • concat_ws(x, s1, s2, …): 使用连接符x连接其他参数产生的字符串
  • 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)
  • 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与其他函数的参数位置是相反的

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):提取日期时间中的要素
  • 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)
  • DATE_FORMAT(date,format):
  • DATEDIFF(expr1,expr2):返回相差的天数
  • TIMEDIFF(expr1,expr2):返回相隔的时间


关注微信公众号

码中人 微信公众号

发表评论

电子邮件地址不会被公开。 必填项已用*标注