MYSQL常用函数
时间
dual
哑表,补全完整的sql语句
函数名 | 用法 |
---|---|
Sysdate() | 当前时间 |
now() | 当前时间 |
current_date() | 时间(年月日) |
current_time() | 时间(时分秒) |
current_timestamp | 时间(年月日时分秒) |
year(‘xxxx-xx-xx’) | 获取年 |
month(‘xxxx-xx-xx’) | 获取月 |
date(‘xxxx-xx-xx’) | 获取日 |
dayofmonth(‘xxxx-xx-xx’) | 一月第几天 |
date(datetime) | 获取datetime日期部分 |
addtime(date2,time_interval) | 将time_interval加到date2 |
date_add(date2,interval)d_value d_type) | 在date2中加上日期或时间 |
date_sub(date2,interval d_value d_type) | 在date2中减去日期或时间 |
datediff(date1,date2) | 两个日期差 |
例:
select sysdate() from dual – 年月日时分秒
select now() from dual – 年月日时分秒
select current_date() from dual – 年月日
select current_time() from dual – 时分秒
select current_timestamp() from dual – 时间戳 年月日时分秒
select date(‘2020-12-02’) from dual – 返回(datetime)的日期部分
select date_add(‘2020-12-02’,interval 2 month) from dual – 给前面时间加上时间(可以是年/月/日)
select date_sub(‘2020-12-02’,interval 2 day) from dual – 给前面时间减去时间(可以是年/月/日)
select datediff(‘2020-12-02’, now()) from dual – 时间差
select year(‘2020-12-02’) from dual – 获取指定日期的 年/月/日
select dayofmonth(‘2020-12-02’) from dual – 获取指定日期的日
字符串
函数名 | 用法 |
---|---|
charset(str) | 返回字符集 |
concat(str[…]) | 字符串连接 |
instr(str1,substr2) | 判断str1是否包含str2 |
ucase(str) | 转大写 |
lcase(str) | 转小写 |
left(str,length) | 从str左边取length个字符 |
right(str,length) | 从str右边取length个字符 |
length(str) | 获取str的长度 |
replace(str,old,new) | 替换str的字符 |
strcmp(str1,str2) | 逐字符比较字符大小(-1,0,1) |
substring(str,position,[length]) | 从str的position开始,取length个字符 |
ltrim(str) | 去除空格 |
例:
select charset(‘java’) from dual – 返回字符集
select concat(‘java’,‘script’) from dual – 连接字串
select instr(‘java’,‘av’) from dual – 返回第二个 在第一个出现的位置 没有返回0
select ucase(‘java’) from dual – 转换大写
select lcase(‘JAVA’) from dual – 转换小写
select left(‘java’,2) from dual – 从左边取lenght个字符
select right(‘java’,2) from dual – 性右边取lenght个字符
select length(‘java’) from dual – str长度
select replace(‘java’,‘av’,‘AV’) – str 用 第三个 替换 第二个
select strcmp(‘java’,‘javc’) from dual – 逐字符比较两字符串大小
select substring(‘java’,‘j’,1) from dual – 从str的position开始,取length个字符
select ltrim(’ java’) from dual – 去除前段空格
select rtrim('java ') from dual – 去除后端空格
字符-日期
函数名 | 用法 |
---|---|
date_fromat(date,’%Y-%m-%d’) | 格式化 日期转字符年月日 |
str_to_date(str,’%Y-%m-%d’) | 解析字符转日期 |
%Y | 4位年份 |
%y | 2位年份 |
%m | 月份(01-12) |
%c | 月份(1-12) |
%d | 月份中天数(01-31) |
%e | 月份中天数(1-12) |
%H | 小时(00-23) |
%k | 小时(0-23) |
%h | 小时(01-12) |
%I | 小时(01-12) |
%l | 小时(1-12) |
%i | 分钟(00-59) |
%r | 时间12小时(hh:mm:ss[A/P]M) |
%T | 时间24小时(hh:mm:ss) |
%S | 秒(00-59) |
%s | 秒(00-59) |
例:
select date_format(20101210,’%Y年%m月%d日’) from dual – 日期转字符串
select str_to_date(‘2020年12月10日’,’%Y年%m月%d日’) from dual – 字符串转日期
数字
函数名 | 用法 |
---|---|
abs(number) | 取绝对值 |
ceiling(number) | 向上取整 |
floor(number) | 向下取整 |
format(number,decimal_places) | 保留几位小数(四舍五入) |
least(number,number2[,…]) | 求最小值 |
rand() | 随机数 |
round(x[,d]) | 四舍五入 d 是保留d位小数 |
例:
select abs(-3) from dual – 绝对值
select ceiling(0.51) from dual – 向上取整
select floor(-0.51) from dual – 向下取整
select format(2.324,2) from dual – 保留小数位数
select least(2,35,9) from dual – 求最小值
select mod (6,2) from dual – 求余 前者为分子后者为分母
select rand() from dual – 随机0-1
select round(3.232345,5) from dual – 四舍五入,后可加保留几位可不加