MySQL 常用函数

在 MySQL 数据库中,函数可以用在 SELECT 语句及其子句(例如 whereorder byhaving 等)中,也可以用在 UPDATEDELETE 语句及其子句中

字符串函数

函数 功能
concat(s1,s2,...sn) 连接 s1,s2,...sn 为一个字符串
insert(str,x,y,instr) 将字符串 str 从第 x 位置开始,y 个字符长的子串替换为字符串 instr
lower(str) 将 str 转换为小写
upper(str) 将 str 转换为大写
left(str,x) 返回 str 最左边的 x 个字符
right(str,x) 返回 str 最右边的 x 个字符
lpad(str,n,pad) 用字符串 pad 对 str 最左边进行填充,直到字符串长度为 n
rpad(str,n,pad) 用字符串 pad 对 str 最右边进行填充,直到字符串长度为 n
ltrim(str) 去掉 str 行首的空格
rtrim(str) 去掉 str 行尾的空格
trim(str) 去掉 str 首尾的空格
repeat(str,x) 返回 str 重复 x 次的结果
replace(str,a,b) 用字符串 b 替换 str 中所有出现的字符串 a
strcmp(s1,s2) 比较字符串 s1 和 s2 的 ASCII 码值的大小
substring(str,x,y) 返回从 str 的 x 位置起 y 个字符长度的子串
  1. concat() 函数与 NULL 连接时返回 NULL
  2. insert()substring() 的位置从 1 开始

数值函数

函数 功能
abs(x) 返回 x 的绝对值
ceil(x) 向上取整
floor(x) 向下取整
mod(x,y) 取模
rand() 返回 0 ~ 1 内的随机数
round(x,y) 返回 x 的四舍五入的有 y 位小数的值
truncate(x,y) 返回数字 x 截断为 y 为小数的值
  1. round() 函数 y 默认为 0

日期和时间函数

函数 功能
curdate() 返回当前日期
curtime() 返回当前时间
now() 返回当前的日期和时间
unix_timestamp(date) 返回日期 date 的 unix 时间戳
from_unixtime(timestamp) 返回 unix 的时间戳的日期值
week(date) 返回日期 date 为一年中的第几周
year(date) 返回 date 的年份
hour(date) 返回 date 的小时
minute(date) 返回 date 的分钟
month(date) 返回 month 的月份
monthname(date) 返回 date 的英文月份名
date_format(date,fmt) 返回按字符串 fmt 格式化日期 date 值
date_add(date,interval expr type) 返回一个日期或时间值加上一个时间间隔的日期值
date_diff(expr,expr2) 返回起始时间 expr 和结束时间 expr2 之间的天数
  1. unix_timestamp()from_unixtime() 函数互为逆操作

  2. date_format() 格式符

    格式符 格式说明
    %s 和 %S 两位数字形式的秒(00,01,...,59)
    %i 两位数字形式的分(00,01,...,59)
    %H 两位数字形式的小时,24 小时(00,01,...,23)
    %h 和 %I 两位数字形式的小时,12 小时(01,02,...,12)
    %k 数字形式的小时,24 小时(0,1,...,23)
    %l 数字形式的小时,12 小时(1,2,...,12)
    %T 24 小时的时间形式(hh:mm:ss)
    %r 12 小时的时间形式(hh:mm:ssAM 或 hh:mm:ssPM)
    %p AM 或 PM
    %W 一周中每一天的名称(Sunday,Monday,...,Saturday)
    %a 一周中每一天名称的缩写(Sun,Mon,...,Sat)
    %d 两位数字表示月中的天数(00,01,...,31)
    %e 数字形式表示月中的天数(1,2,...,31)
    %D 英文后缀表示月中的天数(1st,2nd,3rd,...)
    %w 以数字形式表示周中的天数(0=Sunday,1=Monday,...,6=Saturday)
    %j 以 3 位数字表示年中的天数(001,002,...,366)
    %U 周(0,1,52),其中 Sunday 为周中的第一天
    %u 周(0,1,52),其中 Monday 为周中的第一天
    %M 月名(January,February,...,December)
    %b 缩写的月名(Jan,Feb,...,Dec)
    %m 两位数字表示的月份(01,02,...,12)
    %c 数字表示的月份(1,2,...,12)
    %Y 4 位数字表示的年份
    %y 2 位数字表示的年份
    %% 直接值 %
  3. date_add(date,interval expr type) 函数,interval 是间隔类型关键字,expr 是表达式,对应后面的类型,type 是间隔类型

    间隔类型 描述 格式
    hour 小时 hh
    minute mm
    second ss
    year YY
    month MM
    day DD
    year_month 年和月 YY-MM
    day_hour 日和小时 DD hh
    day_minute 日和分钟 DD hh:mm
    day_second 日和秒 DD hh:mm:ss
    hour_minute 小时和分 hh:mm
    hour_second 小时和秒 hh:ss
    minute_second 分钟和秒 mm:ss
    select date_add(now(),interval 1_2 year_month)
    

流程函数

函数 功能
if(value,t f) 如果 value 为真,返回 t,否则返回 f
ifnull(value1,value2) 如果 value1 不为空,返回 value1,否则返回 value2
case when [value1] then [result1]...else [default] end 如果 value1 是真,返回 result1,否则返回 default
case [expr] when [value1] then [result1]...else [default] end 如果 expr 等于 value1,返回 result1,否则返回 default
  1. ifnull(value1,value2) 函数一般用来替换 null 值。当 value1 为 null 时返回 value2

其它常用函数

函数 功能
database() 返回当前数据库名
version() 返回当前数据库版本
user() 返回当前登录用户名
inet_aton(IP) 返回 IP 地址的数字表示
inet_ntoa(num) 返回数字代表的 IP 地址
password(str) 返回字符串 str 的加密版本
md5(str) 返回字符串 str 的 md5 值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 1.Concat(s1,s2...sn)函数:把传入的参数链接为一个字符串2.Insert(str,x,y,ins...
    HowieW阅读 252评论 0 1
  • 前言: 可以用这样的命令查看帮助 字符串函数 CONCAT(S1,S2,...Sn) 函数:把传入的参数连接成一个...
    缓慢移动的蜗牛阅读 765评论 0 2
  • 一、数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) ...
    ernest128阅读 277评论 0 0
  • 今天去了寸金面试海博会的志愿者。一开始以为是下午的,后来朋友突然打电话来说是上午面试,我们去的很迟,是最后一个,大...
    朝颜sweet阅读 129评论 0 0
  • 很多时候有过这样的经历,白天见过或者一闪而过的东西,夜里就会梦到。无论是事还是人。梦醒之后,想闭着眼睛继续做梦。尤...
    墩呀墩阅读 289评论 1 0