Mysql 函数使用

 

Mysql 函数

 

SELECT CONCAT(id,`jobs_name`,created_at) FROM  jobs  拼接列

 

SELECT INSERT('123456789',1,3,'e')  替换字符串

从第多少位到多少位  但是只能从1开始,也没有什么负数的功能

 

SELECT LOWER("JAVA") 把字符串转成小写

SELECT upper("java") 把字符串转成大写

 

SELECT left("java",1) 从左截取字符串

返回字符串的左边第多少个字,如果第二个参数是null 那么还是返回null

 

SELECT RIGHT("java",NULL)  从右截取字符串

返回字符串右边的第多少个字,如果第二个参数是null 那么还是返回null

 

SELECT LPAD("java",8,"q") 补全字符串

补全之后是多少位 q 就是重复补 ,在左边补充

 

SELECT RPAD("java",8,"q") 在右边补充字符串

 

 

select TRIM("  asdadw   ") 去除字符串两端的空格

elect LTRIM("  asdadw   ") 只去除左边的空格

elect RTRIM("  asdadw   ") 只去除右边的空格

 

SELECT REPLACE(str,from_str,to_str)  字符串替换

SELECT REPLACE("php","p","c")

 

SELECT STRCMP("c","b") 比较字符串

比较两个字符串的ascii 码的大小 c是99 b 是98 所以返回时1 如果互换位置就会返回-1,如果相等则返回0

如果是多个字符串的话,则会一位一位的进行比较

 

select REPEAT("php",3) 重复字符串

重复PHP3次

 

SELECT SUBSTR("123456",3,5) 字符串截取

开始位置为3  截取字符串长度5

 

 

数字操作了

 

SELECT ABS(-1.999) 返回绝对值

 

SELECT CEIL(0.8),CEIL(-0.9)  返回大于这个值的最小整数

 

SELECT FLOOR(-0.9) 小于这个值的大整数

 

SELECT MOD(10,6)  求余数  10/6 余4

 

SELECT ROUND(1.123,2) 返回1.123 四舍五入保留两位小数,如果没有小数会强行加上小数

 

SELECT TRUNCATE(1.2321,2) 直接保留两位小数不进行四舍五入

 

时间的操作

SELECT UNIX_TIMESTAMP("2018!09!11")

默认是当前时间,函数的参数可以为空

 

FROM_UNIXTIME()  将时间戳转成时间格式

比如 

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()),'%Y-%m-%d %j')

第一个参数就是时间戳,这里是当前时间  第二个参数是时间格式(例子就是查询当前时间和今天是今年的第多少天)

第二个参数非必填,如果不传则是默认时间 '%Y-%m-%d %H:%i:%S'

 

%M 月名字(January……December)

%W 星期名字(Sunday……Saturday)

%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

%Y 年, 数字, 4 位

%y 年, 数字, 2 位

%a 缩写的星期名字(Sun……Sat)

%d 月份中的天数, 数字(00……31)

%e 月份中的天数, 数字(0……31)

%m 月, 数字(01……12)

%c 月, 数字(1……12)

%b 缩写的月份名字(Jan……Dec)

%j 一年中的天数(001……366)

%H 小时(00……23)

%k 小时(0……23)

%h 小时(01……12)

%I 小时(01……12)

%l 小时(1……12)

%i 分钟, 数字(00……59)

%r 时间,12 小时(hh:mm:ss [AP]M)

%T 时间,24 小时(hh:mm:ss)

%S 秒(00……59)

%s 秒(00……59)

%p AM或PM

%w 一个星期中的天数(0=Sunday ……6=Saturday )

%U 星期(0……52), 这里星期天是星期的第一天

%u 星期(0……52), 这里星期一是星期的第一天

%% 一个文字“%”。

 

 

SELECT WEEk(NOW()),YEAR(NOW()),HOUR(NOW()),MINUTE(NOW()),MONTHNAME(NOW())

 

分别代表着 当前时间是今年的多少周,年号,小时(24格式),分钟,英文的月份名称

 

SELECT DATE_FORMAT(NOW(),"%Y-%m %j")

格式化时间戳和FROM_UNIXTIME的用法一模一样

 

DATE_ADD 对时间进行加减

DATE_ADD(date,INTERVAL expr unit)

中INTERVAL是间隔类型关键字,expr是一个表达式,这个表达式对应后面的类型,type是间隔类型,MySQL提供了13种间隔类型

 

 

 

HOUR

小时

MINUTE

分钟

SECOND

YEAR
MONTH
DAY
YEAR_MONTH 年月
DAY_HOUR 日小时
DAY_MINUTE 日分钟
DAY_SECOND 日秒钟
HOUR_MINUTE

小时分钟

HOUR_SECOND

小时秒
MINUTE_SECOND

分钟秒

 

 

SELECT DATE_ADD(NOW(),INTERVAL +2 hour)   两个小时之后

 

select now(),date_add(now(),INTERVAL 1 minute) 一分钟之后

select now(),date_add(now(),INTERVAL 1 day)  一天之后

select now(),date_add(now(),INTERVAL '1_2' DAY_HOUR)  一天两小时之后

 

当前也可以使用负数表示前几天 比如

select now(),date_add(now(),INTERVAL -1 minute) 一分钟之前

 

 

SELECT DATEDIFF(NOW(),"2018-04-27") 查看时间间隔

第一个参数是大的,相当于第一个参数减去减去第二个参数

距离2018-04-27已经过去了722天

 

 

其他函数

select DATABASE()

查看当前use 的数据库

 

SELECT version()

查看当前数据库版本

 

SELECT user()

查看当前登录的用户名

 

INET_ATON()

SELECT INET_ATON("192.168.100.11")

把ip转成数字

 

INET_NTOA()

SELECT INET_NTOA("3232261131")

把数字转成IP地址

 

查询192.168.1.3 到192.168.1.20 之间有多少个IP

select * from t  where inet_aton(ip)>=inet_aton('192.168.1.2') and inet_aton(ip)<=inet_aton('192.168.1.20');

PASSWORD()

Mysql 的加密方式会返回41位

 

MD5()

md5加密

原文地址:https://www.cnblogs.com/wlphp/p/12690180.html