MySQL中的单行函数②

目录

日期和时间函数

获取日期、时间

MySQL中的单行函数②
例如:

SELECT CURDATE(),CURRENT_DATE(),CURTIME(),NOW(),SYSDATE(),
UTC_DATE(),UTC_TIME()
FROM DUAL;

结果:
MySQL中的单行函数②

世界标准时间也就是格林威治国际标准时间(GMT)

日期与时间戳的转换

小贴士:unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

MySQL中的单行函数②
例如:

SELECT UNIX_TIMESTAMP(),UNIX_TIMESTAMP('2021-10-01 12:12:32'),
FROM_UNIXTIME(1635173853),FROM_UNIXTIME(1633061552)
FROM DUAL;

结果:
MySQL中的单行函数②

获取月份、星期、星期数、天数等函数

MySQL中的单行函数②
例如:

SELECT YEAR(CURDATE()),MONTH(CURDATE()),DAY(CURDATE()),
HOUR(CURTIME()),MINUTE(NOW()),SECOND(SYSDATE())
FROM DUAL;

SELECT MONTHNAME('2021-10-26'),DAYNAME('2021-10-26'),WEEKDAY('2021-10-26'),
QUARTER(CURDATE()),WEEK(CURDATE()),DAYOFYEAR(NOW()),
DAYOFMONTH(NOW()),DAYOFWEEK(NOW())
FROM DUAL;

结果:MySQL中的单行函数②
MySQL中的单行函数②

日期的操作函数

MySQL中的单行函数②
EXTRACT(type FROM date)函数中type的取值与含义:
MySQL中的单行函数②
例如:

SELECT EXTRACT(SECOND FROM NOW()),EXTRACT(DAY FROM NOW()),
EXTRACT(HOUR_MINUTE FROM NOW()),EXTRACT(QUARTER FROM '2021-05-12')
FROM DUAL;

结果:
MySQL中的单行函数②

时间和秒钟转换的函数

MySQL中的单行函数②
例如:

SELECT TIME_TO_SEC(CURTIME()),
SEC_TO_TIME(83355)
FROM DUAL;

结果:
MySQL中的单行函数②

计算日期和时间的函数

第1组:
MySQL中的单行函数②
MySQL中的单行函数②
例如:

SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) AS col1,DATE_ADD('2021-10-21 23:32:12',INTERVAL 1 SECOND) AS col2,
ADDDATE('2021-10-21 23:32:12',INTERVAL 1 SECOND) AS col3,
DATE_ADD('2021-10-21 23:32:12',INTERVAL '1_1' MINUTE_SECOND) AS col4,
DATE_ADD(NOW(), INTERVAL -1 YEAR) AS col5, #可以是负数
DATE_ADD(NOW(), INTERVAL '1_1' YEAR_MONTH) AS col6 #需要单引号
FROM DUAL;

结果:
MySQL中的单行函数②
第2组:
MySQL中的单行函数②
例如:

SELECT ADDTIME(NOW(),20),SUBTIME(NOW(),30),SUBTIME(NOW(),'1:1:3'),DATEDIFF(NOW(),'2021-10-01'),
TIMEDIFF(NOW(),'2021-10-25 22:10:10'),FROM_DAYS(366),TO_DAYS('0000-12-25'),
LAST_DAY(NOW()),MAKEDATE(YEAR(NOW()),32),MAKETIME(10,21,23),PERIOD_ADD(20200101010101,10)
FROM DUAL;

结果:
MySQL中的单行函数②

日期的格式化与解析

格式化:日期 —> 字符串
解析: 字符串 ----> 日期
此时我们谈的是日期的显式格式化和解析

之前,我们接触过隐式的格式化或解析
例如’2022-02-01’本来是字符串形式,但是因为跟date的形式一样,所以转成了date类型
MySQL中的单行函数②
上述 非GET_FORMAT 函数中fmt参数常用的格式符:
MySQL中的单行函数②
GET_FORMAT函数中date_type和format_type参数取值如下:
MySQL中的单行函数②

例如:

# 格式化
SELECT DATE_FORMAT(CURDATE(),'%Y-%M-%D'),
DATE_FORMAT(NOW(),'%Y-%m-%d'),TIME_FORMAT(CURTIME(),'%h:%i:%S'),
DATE_FORMAT(NOW(),'%Y-%M-%D %h:%i:%S %W %w %T %r')
FROM DUAL;

#格式化的逆过程
SELECT STR_TO_DATE('2021-October-25th 11:37:30 Monday 1','%Y-%M-%D %h:%i:%S %W %w')
FROM DUAL;

SELECT GET_FORMAT(DATE,'USA')
FROM DUAL;

SELECT DATE_FORMAT(CURDATE(),GET_FORMAT(DATE,'USA'))
FROM DUAL;

结果:
MySQL中的单行函数②
MySQL中的单行函数②
MySQL中的单行函数②
MySQL中的单行函数②

加密与解密函数

加密与解密函数主要用于对数据库中的数据进行加密和解密处理,以防止数据被他人窃取。这些函数在保证数据库安全时非常有用。
MySQL中的单行函数②

PASSWORD()在mysql8.0中弃用。
ENCODE()\DECODE() 在mysql8.0中弃用。
ENCODE(value,password_seed)函数与DECODE(value,password_seed)函数互为反函数。

例如:

SELECT MD5('mysql'),SHA('mysql'),MD5(MD5('mysql'))
FROM DUAL;

结果:
MySQL中的单行函数②

注意:MD5、SHA这两种加密方式都是不可逆的。验证加密信息的时候,是把两个转换结果进行比较。

MySQL信息函数

MySQL中内置了一些可以查询MySQL信息的函数,这些函数主要用于帮助数据库开发或运维人员更好地对数据库进行维护工作。
MySQL中的单行函数②
例如:

SELECT VERSION(),CONNECTION_ID(),DATABASE(),SCHEMA(),
USER(),CURRENT_USER(),CHARSET('数据库'),COLLATION('数据库')
FROM DUAL;

其他函数

MySQL中有些函数无法对其进行具体的分类,但是这些函数在MySQL的开发和运维过程中也是不容忽视的。
MySQL中的单行函数②

①在FORMAT(value,n)中如果n的值小于或者等于0,则只保留整数部分
②INET_ATON(ipvalue) 的计算方法。以“192.168.1.100”为例,计算方式为192乘以256的3次方,加上168乘以256的2次方,加上1乘以256,再加上100

例如:

#如果n的值小于或者等于0,则只保留整数部分
SELECT FORMAT(123.125,2),FORMAT(123.125,0),FORMAT(123.125,-2)
FROM DUAL;

SELECT CONV(16, 10, 2), CONV(8888,10,16), CONV(NULL, 10, 2)
FROM DUAL;
#以“192.168.1.100”为例,计算方式为192乘以256的3次方,加上168乘以256的2次方,加上1乘以256,再加上100。
SELECT INET_ATON('192.168.1.100'),INET_NTOA(3232235876)
FROM DUAL;

#BENCHMARK()用于测试表达式的执行效率
SELECT BENCHMARK(100000,MD5('mysql'))
FROM DUAL;
# CONVERT():可以实现字符集的转换
SELECT CHARSET('数据库'),CHARSET(CONVERT('数据库' USING 'gbk'))
FROM DUAL;

结果:
MySQL中的单行函数②
MySQL中的单行函数②
MySQL中的单行函数②
MySQL中的单行函数②

MySQL中的单行函数②

上一篇:Oracle绝对值函数


下一篇:给查询的SQL中自动增加 自增长 序号