Home >Database >Mysql Tutorial >mysql标量函数

mysql标量函数

WBOY
WBOYOriginal
2016-06-07 15:46:552128browse

几种常用的标量函数,最简单的就是通过类select abs(-123);来使用标量函数。 abs:该函数返回一个数表达式的绝对。如abs(-123); adddate:该函数将一个时间间隔(参数2)添加到时戳或时戳表达式(参数1)中,与此函数同功能的还有date_add。如 adddate('2009-01-

几种常用的标量函数,最简单的就是通过类似select abs(-123);来使用标量函数。

  abs:该函数返回一个数值表达式的绝对值。如abs(-123);

  adddate:该函数将一个时间间隔(参数2)添加到时戳或时戳表达式(参数1)中,与此函数同功能的还有date_add。如 adddate('2009-01-01',4);结果为2009-01-05。adddate(2009-01-01,interval 5 month);结果为2009-06-01。adddate(timestamp('2009-01-01'),interval 5 month);结果为2009-06-01 00:00:00。adddate('2009-01-01 12:00:00',interval 5 day);结果为2009-01-06 12:00:00。

  addtime:把两个时间表达式加起来。如addtime('100:00:00','200:02:04');结果为300:02:04。

  ascii:该函数返回一个字符串表达式的第一个字符的ASCII值。

  bin:该函数将参数的数值转换为二进制值。

  bit_count:该函数显示表示参数的值的位数。如bit_count(3)结果为2。

  bit_length:该函数返回字符串值的位长度。如bit_length(bin(2));结果为16

  ceiling:该函数返回大于或等于参数值的最大整数。如ceiling(11.11);->12。ceicling(-11.11);->-11

  char:该函数返回数值参数的字符串字符,与此函数同功能的还有chr函数。如char(82)+char(105)+char(99)+char(107);->'Rich'

  character_length:该函数返回一个字符串表达式的长度,此要领 同功能的还有char_length函数。

  charset:该函数返回字符串参数的字符集的名称。

  coalesce:该函数接受多个参数,返回第一个非null值的参数的值。如coalesce(null,null,'ljp');->'ljp';

  concat:该函数合并两个字符串的值。

  conv:该函数将一基数为参数2的值(参数1)转换为另一个以参数3为基数的值。如conv(1110,10,16)表示将以10进制的数1110转换成16进制值为456。后面两个参数必须介于2~36之间,否则结果为null,此外参数1的值应该匹配参数2的基数,否则结果为0。 

  convert:该函数转换参数1的数据类型为参数2指定的类型。参数2必须是一种数据类型,包括 binary,char,date,datetime,time,signed,signed integer,unsigned,unsigned integer,varchar。如convert('12.56',unsigned integer);->13。

  database:该函数显示当前数据库的名称。

  date:该函数将参数变换为一个日期值。如date('2009-01-01 12:00:00');->'2009-01-01'。

  datediff:该函数计算两个日期或时间戳表达式间的天数。第一个参数减去第二个参数。

  date_sub:该函数从一个日期或时间戳表达式(参数一)中减去一个时间间隔(参数2),与才函数同功能的还有subdate函数。

  day:该函数从一个日期或时间戳表达式中返回月的天数,结果总是介于1~31之间的整数,与此函数同功能的还有dayofmonth。

  dayname:该函数从一个日期或时间戳表达式中返回一周中某天的名称。

  dayofweek:该函数返回一个日期或时间戳表达式中返回某周的天数的序号。该结果总是介于1~7之间的整数。

  dayofyear:该函数返回一个日期或时间戳表达式中返回一年中某日的序号。

  default:该函数返回参数指定的某列的默认值。

  floor:该函数返回小于或等于参数值的最小整数,与ceiling相对。

  exp :该函数返回e的x次幕的结果。

  format:该函数将一个数值的格式配置 为nn,nnn,nnn.nnn的格式。第二个参数表示小数点后的数字个数

  greatest:该函数返回一系列参数中的最大值,和least相对。

  hex:如果参数为数字,那么就返回该数字的十六进制表示;如果是字符串,那么将返回每个字符对应的ASCII码。

  if:如果第一个参数值为true,那么函数返回第二个参数的值,否则返回第三个参数的值。如if((1>2),"ljp","st");将返回st。 

  ifnull:如果参数1的值为null,那么返回参数2的值,否则返回参数1的值。如ifnull(null,"ljp");返回"ljp"。

  insert:参数4的值放在参数1中由参数2指定的位置,参数3表示参数1中从参数2指定的位置开始接下来的多个 字符将被参数4取代。如 insert('abcdefgh',4,3,'zzz');->'abczzzgh'。 insert('abcdefgh',,4,2,'zzz');->'abczzzfgh'。 insert('abcdefgh',4,0,'zzz');->'abczzzdefgh'。 

  insert('abcdefgh',4,-1,'zzz');->'abczzz'。 insert('abcdefgh',1,5,'zzz');->'zzzfgh'。

  instr:该函数返回参数1内参数2的起始位置。如果为找到,则返回0。如instr('12345',4);->4。

  interval:该函数第一个参数指定要插入的值,接下来的参数组成一个升序序列,看第一个参数该插入哪个位置。该函数就是返回该位置。如interval(5,0,1,2,3,6,7);->4表示要把5放在第四个位置(此位置上值为3)之后。

  isnull:如果参数值为null,那么返回1,否则返回0。

  last_day:该函数返回参数指定的日期或时间戳表达式中月的最后一天,如last_day('2009-01-09');->'2009-01-31'。

  lcase:该函数将参数的值的所有大写字母转换为小写字母,与lower同义,与ucase相对。

  left:该函数返回一个字符串值参数1的左侧部分,该部分的长度由第二个参数指定。如left("hello world",3);->'hel'。

  length:该函数返回一个字符串值的字节长度。如length(null);->null。

  ln:该函数返回参数的自然对数,与log同义。

  localtime:该函数返回系统日期和时间,localtimestamp与只同义。

  locate:该函数返回参数1在参数2内的起点位置。如果参数1在参数2内未出现,则返回0。参数3表示开始搜索的位置。留心 instr函数的区别,instr函数是返回参数1内参数2的开始位置。 

  log2:返回参数以2为底的对数。如log2(64);->6

  log10:返回参数以10为底的对数。

  lpad:参数3的值填充在参数1的左侧,直到该值的总长度等于参数2的长度。如果最大长度小于参数1的长度,则参数1在左侧被截取。如 lpad('data',6,'base');->'badata'。lpad('data',2,'base');->'da'。

  ltrim:该函数删除出现在参数前的所有空白,rtrim表示删除参数末尾的所以空白。

  makedate:参数2表示天数,他们被添加到参数1中。如makedate(2009,10);->'2009-01-10'。

  maketime:三参数分别表示小时,分钟,秒钟。其中分钟和秒钟必须在0~59之间,否则会返回null。

  mid:该函数提取参数1中的部分字符串值,参数2标识开始位置,参数3标识字符数。如mid('database',5);->'base'。 mid('database',5,2);->'ba'。mid('database',-6);-> 'tabase'。mid('database',-6,3);->'tab'。

  minute:该函数从一个时间或时间戳表达式中返回分钟数。

  mod:该函数返回两参数相除的余数。如mod(15.4,4,4);->2.2

  month:返回时间戳中的月份数,值介于1~12之间。

  monthname:该函数从一个日期或时间戳表达式中返回月的名称。如monthname('2009-01-01');->‘April’。

  now:返回系统日期和时间。

  nullif:如果参数1的值等于参数2的值,那么函数返回null。否则返回参数1的值。

  oct:该函数返回八进制参数1的十进制数。如oct(8);->10

  ord:该函数返回参数指定的字符串表达式的第一个字符的字符集位置。如ord('Das');->68。

  period_add:该函数将月数添加到一个指定的日期,日期格式必须为YYYYMM或YYMM。结果格式为YYYYMM。如period_add('200901',3);->200904。 

  period_diff:该函数返回两个日期间的月数。如period_diff('200908','200901');->7

  PI:返回圆周率。

  power:返回参数1的参数2次幂。

  quarter:该函数从一个日期或时间戳表达式中返回季度值。结果的值总是介于1~4之间。不过和我们日常生活中的季度不同1~3月为1,4~6月为2,7~9月为3,10~12月为4。

  rand:该函数返回0.0和1.0之间的一个随机数。参数表示下一个随机值的计算起点。运用 相同的参数值重复调用该函数,结果总是相同的。如cast(rand()*1000 as unsigned integer);

  repeat:该函数将参数1的值重复参数2给定的次数。

  replace:该函数使参数1指定的字符串中由参数2指定的值替换为参数3指定的值。如replace('data','a','e');->'dete'。

  reverse:该函数颠倒一个字符串值中的字符的顺序。

  right:该函数返回参数1的右侧部分。该部分长度由第二个参数指定。

  round:该函数将一个数字的精度舍入到指定的位数。如round(123.4,-1);->100;round(183.4,-2);->200。

  rpad:将参数3的值填充到参数1的右侧,知道值的总长度等于参数2指定的长度,与lpad相对。rpad('data',2,'base')->'da'。

  second:该函数返回一个时间或时间戳表达式中的秒数。

  sec_to_time:该函数将秒数变换为时间。如sec_to_time((24*60*60)-1);->23:59:59

  sign:该函数返回一个数值的字符。sign(50);->1;sign(0)->0;sign(-50)->-1;

  space:该函数生成一个空格行,空格个数为参数指定的值。

  sqrt:返回参数的平方根值。

  strcmp:该函数比较两个字符串表达式的值。如果参数值相等,那么结果为0,如果参数1的值较小,那么返回-1,否则结果为1。 

  substring:该函数从参数1中减去部分字符串值,参数2给出起始点,参数3给出子付数。如substring('database',5,2);->'ba'。

  substring_index:该函数查找参数2表示的值在参数1中的第参数3此出现。如果参数3为正表示从左侧查找,返回从左侧开始找到的该次出现。如果参数3为负,则从右侧开始查找。如 substring_index('database','a',3);->'datab';substring_index('database','a',-3);->'tabase';substring_index('database','data',1);->'';substring_index('database','data',-1);->'base'  

  subtime:该函数对两个时间表达式执行相减操作并返回一个新时间,timediff与此函数功能相似。

  time:该函数返回一个时间或时间戳表达式的时间部分。如time('12:13');->12:13:00

  time_to_sec:该函数将时间变换为秒数。如time_to_sec('00:16:40');->1000

  timestampdiff:该函数计算两个日期或时间戳表达式间的时间。参数1表示时间间隔单元,如 day,month,year,quarter,week,hour,minute,second,frac_second,参数2和参数3形成两个表达式。如timestampdiff(day,'2009-01-01','2009-01-04');->4.

  timestamp:该函数将参数1变换为一个时间戳,如果指定了参数2,则它应该是一个时间表达式,且会被添加到参数1的值中。

  timestampadd:该函数将时间间隔添加到一个日期或时间戳表达式。参数1表示时间间隔的单元,参数2表示天数或月数等,参数3表示时间间隔添加到的表达式。如 timestampadd(DAY,2,'2009-01-01');->'2009-01-03';timestampadd(MONTH,2,'2009-01-01');->"2009-03-01"。

  trim:该函数删除参数1表示的字符串值中开始和最后的所有空格。

  truncate:该函数将数字截断到指定的小数位数,留心 和round的区别,round是四舍五入,而truncate是截断。如 truncate(123.45,-1);->120。truncate(123.375,1);->123.3。

  unhex:与hex相对,将十六进制表示的参数转换为相应的字符。如unhex(hex('hello'))'->hello

  ucase:类似upper,都是将参数中的所有小写字母转换为大写字母。

  week:该函数从一个日期或时间戳表达式中返回周数,类似的函数还有weekofyear。结果介于1~53之间的一个整数。如week('2009-06-07');->23

  weekday:该函数返回一周中的天数。结果为介于0~6之间的数。0表示星期一。year:该函数从一个日期或时间戳表达式中返回年数。

  yearweek:如果指定参数1,则该函数从一个时间戳或日期表达式中返回格式为YYYYWW的年份及周数。周数的范围为01~52之间。如yearweek('2009-07-06');->200927 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn