MySQL函数1(单行函数)

database

单行函数

函数的理解

分类

数值函数

基本函数

  • PI()无参数
  • CETL CETLING()天花板函数(取比自己大的相邻的数)
  • FLOOR()地板函数(取比自己小的相邻的数)
  • RAND()无参数:随机;RAND(参数):一个固定的随机数

单行函数可以嵌套

角度与弧度的互换函数

三角函数

指数和对数

进制间的转换

  • CONV(x,f1,f2):f1进制下的x,变成f2进制下的数

字符串函数

  • CHAR_LENGTH("字符串"):显示有多少个字符

  • LENGTH("字符串"):显示内存层面占多少个字节

  • CONCAT_WS(x,s1,s2....):用x来连接字符(串)

  • INSERT(s1,int1,int2,s2):从是的第int1开始,数int2个数替换成s2(字符串的索引从1开始)

  • LEFT(str,n)和RIGHT(str,n):如果n的数大于字符串的长度,则全部输出

日期和时间函数

获取日期,时间

select CURDATE(),NOW(),curtime(),utc_date(),utc_timestamp(),utc_time()

from dual;

# 结果

2022-03-05 2022-03-05 09:31:46 09:31:46(北京时间)

2022-03-05 2022-03-05 01:31:46 01:31:46(英国,格林威治时间)

日期和时间戳的转换

select unix_timestamp(),from_unixtime(1646444141),unix_timestamp("2021-10-01 12:12:32`")

from dual;

#结果

1646444277 2022-03-05 09:35:41 1633061552果

获取月份,星期,星期数,天数等

注:

  • WEEKDAY():返回周几,周1是0
  • DAYOFWEEK():返回周几,周日是1

日期的操作函数

EXTRACT(type FROM data)

SELECT EXTRACT(second FROM NOW())

FROM DUAL;#返回现在的秒数

时间和秒钟转化的函数

select time_to_sec(curtime()),sec_to_time(36265)

from dual;

36265 10:04:25

计算日期和时间的函数

基础的计算

  • 返回与给定时间相差INTERVAL时间段的日期时间

DATE_ADD(datetime,INTERVAL expr type)  

ADDDATE(date,INTERVAL expr type)

  • 返回与date相差INTERVAL时间间隔的日期

DATE_SUB(date,INTERVAL expr type)  

SUBDATE(date,INTERVAL expr type)

SELECT now(),date_add(now(),interval 1 year),date_add(now(),interval -1 year)

from dual;

#结果

2022-03-05 10:23:59

2023-03-05 10:23:59 加一年

2021-03-05 10:24:14 减一年

注:expr可以是负数(减去);在分钟和秒数等之间的expr要加下划线和单引号

复杂的计算

  • PERIOD_ADD(时间,n):时间的表达是没有‘-’的

日期的格式化与解析(显式)

  • 格式化:日期—>字符串



select date_format(NOW(),"%Y-%m-%d"),time_format(curtime(),"%h:%i:%s")

from dual;

2022-03-05 11:10:43

  • 解析:字符串—>日期

select str_to_date("2022-October-05","%Y-%M-%d")

from dual;

2022-10-05

  • GET_FORMAT

放入上述的fmt中,自动匹配对应的日期时间格式eg:

select date_format(NOW(),get_format(date,"USA"))

from dual;

流程控制函数(MySQL自带循环)

  • IF(value,value1,value2):类别C语言中的 ... ? ... : ...语句

SELECT id,salay,if(salary >= 5000,"高工资","低工资") "detail"

FROM employees;#判断高低工资

  • IFNULL(value1,value2):只能判断null的情况
  • CASE WHEN...THEN...ELSE...END

CASE WHEN salary >= 10000 THEN "高薪"

else "低薪" END

加密和解密函数

  • PASSWORD():在MySQL8.0中弃用
  • MD5()和SHA()是不可逆的
  • ENCODE()和DECONE()在MySQL8.0中也弃用了

MySQL信息函数

其他函数

  • FORMAT(value,n):若n<=0,则保留整数
  • INET_NTOA(value):每个部分分别*256的3、2、1、0次方,再加起来

以上是 MySQL函数1(单行函数) 的全部内容, 来源链接: utcz.com/z/536328.html

回到顶部