👉🏻日期函数
MySQL提供了许多内置函数来处理日期和时间值。以下是MySQL中一些常见的日期函数:
-
NOW()
- 返回当前的日期和时间。
-
CURDATE()
- 返回当前的日期。
-
CURTIME()
- 返回当前的时间。
-
DATE_FORMAT(date, format)
- 按照指定的格式显示日期/时间值。例如:
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
。
- 按照指定的格式显示日期/时间值。例如:
-
DAY(date)
- 返回日期值中的天。
-
MONTH(date)
- 返回日期值中的月份。
-
YEAR(date)
- 返回日期值中的年份。
-
DATEDIFF(date1, date2)
- 返回两个日期之间的天数差。
-
DAYOFWEEK(date)
- 返回日期是星期几(1=周日,2=周一,…,7=周六)。
-
DAYOFMONTH(date)
- 返回日期是一个月中的第几天(1到31)。
-
DAYOFYEAR(date)
- 返回日期是一年中的第几天(1到366)。
-
WEEK(date)
- 返回日期是一年中的第几周(取决于
default_week_format
系统变量)。
- 返回日期是一年中的第几周(取决于
-
WEEKDAY(date)
- 返回日期是星期几(0=周一,1=周二,…,6=周日)。
-
QUARTER(date)
- 返回日期是一年中的第几季度(1到4)。
-
HOUR(time)
- 返回时间值的小时部分。
-
MINUTE(time)
- 返回时间值的分钟部分。
-
SECOND(time)
- 返回时间值的秒部分。
-
STR_TO_DATE(str, format)
- 将字符串按照指定的格式转换为日期。
-
DATE_ADD(date, INTERVAL expr unit)
- 将一个时间间隔加到日期上。例如:
DATE_ADD(CURDATE(), INTERVAL 1 DAY)
。
- 将一个时间间隔加到日期上。例如:
-
DATE_SUB(date, INTERVAL expr unit)
- 从日期中减去一个时间间隔。例如:
DATE_SUB(CURDATE(), INTERVAL 1 DAY)
。
- 从日期中减去一个时间间隔。例如:
-
LAST_DAY(date)
- 返回一个月中的最后一天。
-
FROM_UNIXTIME(unix_timestamp)
- 将UNIX时间戳转换为日期时间值。
-
UNIX_TIMESTAMP(date)
- 将日期时间值转换为UNIX时间戳。
-
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)
- 返回两个日期时间表达式之间的差异,结果基于指定的时间单位。
-
CONVERT_TZ(dt, from_tz, to_tz)
- 将日期时间值从一种时区转换为另一种时区。
以上只是MySQL日期函数中的一部分,但它们是处理日期和时间数据时最常用的函数。当你需要更复杂的日期和时间计算时,组合使用这些函数通常可以满足需求。
👉🏻字符串函数
当涉及到字符串处理时,MySQL提供了许多内置的字符串函数。以下是一些常见的MySQL字符串函数:
-
CONCAT(str1, str2, …)
- 连接两个或多个字符串。
-
CONCAT_WS(separator, str1, str2, …)
- 使用指定的分隔符连接两个或多个字符串。
-
LENGTH(str) 或 CHAR_LENGTH(str)
- 返回字符串的长度(字符数)。
-
LOWER(str)
- 将字符串中的所有字符转换为小写。
-
UPPER(str)
- 将字符串中的所有字符转换为大写。
-
LTRIM(str)
- 去除字符串左侧的空格。
-
RTRIM(str)
- 去除字符串右侧的空格。
-
TRIM(str)
- 去除字符串两侧的空格。
-
SUBSTRING(str, pos, len)
- 从字符串中提取子字符串,从指定的位置开始,并指定长度。
-
SUBSTRING_INDEX(str, delimiter, count)
- 根据指定的分隔符将字符串分割为子字符串,并返回第
count
个子字符串(如果count
为正数,则从左边开始计数;如果为负数,则从右边开始计数)。
- 根据指定的分隔符将字符串分割为子字符串,并返回第
-
LOCATE(substr, str) 或 POSITION(substr IN str)
- 返回子字符串在字符串中首次出现的位置(从1开始计数)。如果未找到子字符串,则返回0。
-
REPLACE(str, from_str, to_str)
- 在字符串中替换所有出现的子字符串。
-
LEFT(str, len)
- 返回字符串最左侧的
len
个字符。
- 返回字符串最左侧的
-
RIGHT(str, len)
- 返回字符串最右侧的
len
个字符。
- 返回字符串最右侧的
-
LPAD(str, len, padstr)
- 使用指定的填充字符串
padstr
将原字符串str
从左侧填充到指定的长度len
。
- 使用指定的填充字符串
-
RPAD(str, len, padstr)
- 使用指定的填充字符串
padstr
将原字符串str
从右侧填充到指定的长度len
。
- 使用指定的填充字符串
-
REPEAT(str, count)
- 重复字符串
str
指定的次数count
。
- 重复字符串
-
SPACE(n)
- 返回包含
n
个空格的字符串。
- 返回包含
-
STRCMP(str1, str2)
- 比较两个字符串。如果
str1
小于str2
,则返回负数;如果相等,则返回0;如果str1
大于str2
,则返回正数。
- 比较两个字符串。如果
-
INITCAP(str)(在某些数据库系统中可能不可用)
- 将字符串中的每个单词的首字母转换为大写,其余字母转换为小写。
这些函数在处理字符串时非常有用,无论是用于数据清洗、转换、格式化还是查询时的字符串匹配。你可以根据具体的需求选择适合的函数来处理字符串数据。
👉🏻数学函数
在MySQL中,也提供了许多内置的数学函数用于在数据库查询中进行数学计算。以下是一些常见的MySQL数学函数:
-
ABS(X)
- 返回X的绝对值。
-
CEIL(X) 或 CEILING(X)
- 返回大于或等于X的最小整数。
-
FLOOR(X)
- 返回小于或等于X的最大整数。
-
ROUND(X)
- 返回最接近X的整数。如果X有小数部分,则四舍五入。
-
ROUND(X, D)
- 返回X四舍五入到D位小数的值。
-
TRUNCATE(X, D)
- 返回X截断到D位小数的值,不进行四舍五入。
-
MOD(N, M)
- 返回N除以M的余数。
-
POW(X, Y) 或 POWER(X, Y)
- 返回X的Y次幂。
-
SQRT(X)
- 返回X的平方根。
-
EXP(X)
- 返回e的X次幂(e是自然对数的底数)。
-
LN(X)
- 返回X的自然对数。
-
LOG(X)
- 返回X的自然对数(在某些版本的MySQL中,LOG()默认是底数为10的对数)。
-
LOG2(X)
- 返回X以2为底的对数。
-
LOG10(X)
- 返回X以10为底的对数。
-
RADIANS(X)
- 将角度X从度转换为弧度。
-
DEGREES(X)
- 将弧度X从弧度转换为度。
-
PI()
- 返回圆周率π的值。
-
SIGN(X)
- 返回X的符号。如果X是负数,则返回-1;如果X是0,则返回0;如果X是正数,则返回1。
-
RAND()
- 返回一个0到1之间的随机浮点数。
-
RAND(N)
- 返回一个基于种子N的随机浮点数。如果N是常数,那么RAND(N)将返回一个可重复的随机序列。
-
COS(X)
- 返回X(以弧度为单位)的余弦值。
-
SIN(X)
- 返回X(以弧度为单位)的正弦值。
-
TAN(X)
- 返回X(以弧度为单位)的正切值。
-
ACOS(X)
- 返回X的反余弦值(以弧度为单位)。
-
ASIN(X)
- 返回X的反正弦值(以弧度为单位)。
-
ATAN(X)
- 返回X的反正切值(以弧度为单位)。
-
ATAN2(Y, X)
- 返回点(X, Y)与正X轴之间的角度(以弧度为单位),考虑符号。
这些函数可以在MySQL查询中用于各种数学计算,使得数据库查询更加强大和灵活。
补充
当谈到MySQL中的bin()
, hex()
, conv()
, 和 format()
函数时,它们各自有不同的用途和功能。以下是这些函数的简要介绍:
bin(N)
bin()
函数将十进制数 N
转换为二进制字符串表示形式。
示例:
SELECT bin(10); -- 输出 '1010'
hex(N)
或HEX(str)
hex()
函数有两种用法:
hex(N)
:将十进制数N
转换为十六进制字符串表示形式。HEX(str)
:将字符串str
中的每个字符转换为对应的十六进制表示。
示例:
SELECT hex(255); -- 输出 'FF'
SELECT HEX('abc'); -- 输出 '616263'('a' 是 61, 'b' 是 62, 'c' 是 63)
conv(N, from_base, to_base)
conv()
函数将数字 N
从一个基数 from_base
转换到另一个基数 to_base
。from_base
和 to_base
必须是2到36之间的整数。
示例:
SELECT conv(10, 10, 2); -- 将十进制数10转换为二进制,输出 '1010'
SELECT conv('A', 16, 10); -- 将十六进制数'A'(即10)转换为十进制,输出 '10'
format(X, D, locale)
format()
函数将数字 X
格式化为字符串,并保留 D
位小数。但是,请注意,MySQL的FORMAT()
函数通常只接受两个参数:X
和 D
。第三个参数 locale
在某些数据库系统中可能不被支持或具有不同的行为。
示例:
SELECT FORMAT(12345.6789, 2); -- 输出 '12,345.68'(注意,这里使用了逗号作为千位分隔符,但这取决于数据库配置和地区设置)
在某些数据库系统中,FORMAT()
函数可能还支持其他格式化选项,如货币符号、千位分隔符等,但具体取决于实现和地区设置。
请注意,以上函数的行为和输出可能因MySQL版本、地区设置和数据库配置的不同而有所差异。因此,在使用这些函数时,最好查阅特定MySQL版本的官方文档以获取最准确的信息。
👉🏻系统信息函数
- VERSION():返回 MySQL 服务器的版本。
- USER() 或 SYSTEM_USER():返回当前 MySQL 用户名和主机名。
- DATABASE() 或 SCHEMA():返回当前数据库名
👉🏻加密函数
- MD5():返回字符串的 MD5 哈希值。
- SHA1():返回字符串的 SHA-1 哈希值。
👉🏻控制流函数
- NULLIF(expr1, expr2):如果 expr1 等于 expr2,则返回 NULL;否则返回 expr1。
- COALESCE(value1, value2, …):返回参数列表中的第一个非 NULL 值。
如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长