一、日期函数
函数名称 | 功能描述 |
current_data() | 获取当前日期 |
current_time() | 获取当前时间 |
current_timestamp() | 获取当前时间戳 |
date() | 返回datetime的日期部分 |
date_add(date, interval d_value_type) | 以date为基础,添加日期或者时间,interval 后面指定时间的类型,例如year、month、day等等 |
date_sub(date, interval d_value_type) | 以date为基础,减去日期或者时间,interval 后面指定时间的类型,例如year、month、day等等 |
datediff(date1, date2) | 两个日期的差,单位是天数 |
now() | 获取当前日期时间 |
获取当前年月日
mysql> select current_date(); +----------------+ | current_date() | +----------------+ | 2023-05-07 | +----------------+ 1 row in set (0.00 sec)
获取当前时分秒
mysql> select current_time(); +----------------+ | current_time() | +----------------+ | 20:11:07 | +----------------+ 1 row in set (0.00 sec)
获取当前时间戳
mysql> select current_timestamp(); +---------------------+ | current_timestamp() | +---------------------+ | 2023-05-07 20:12:27 | +---------------------+ 1 row in set (0.00 sec)
获取当前时间戳的日期部分
mysql> select date(current_timestamp()); +---------------------------+ | date(current_timestamp()) | +---------------------------+ | 2023-05-07 | +---------------------------+ 1 row in set (0.00 sec)
在日期的基础上加天数
mysql> select date_add(current_date, interval 10 day); +-----------------------------------------+ | date_add(current_date, interval 10 day) | +-----------------------------------------+ | 2023-05-17 | +-----------------------------------------+ 1 row in set (0.00 sec)
在日期的基础上减去天数
mysql> select date_sub(current_date, interval 10 day); +-----------------------------------------+ | date_sub(current_date, interval 10 day) | +-----------------------------------------+ | 2023-04-27 | +-----------------------------------------+ 1 row in set (0.00 sec)
计算两个日期之间相差多少天
mysql> select datediff('2023-5-7', '2023-1-1'); +----------------------------------+ | datediff('2023-5-7', '2023-1-1') | +----------------------------------+ | 126 | +----------------------------------+ 1 row in set (0.00 sec)
二、字符串函数
函数名称 | 功能描述 |
charset(str) | 返回字符串对应的字符集 |
concat(string2, […, …]) | 连接字符串 |
instr(string, substring) | 返回substring在string中出现的位置,没有则返回0 |
ucase(str) | 转化为大写 |
lcase(str) | 转化为小写 |
left(str, length) | 从str左边起取length个字符 |
right(str, length) | 从str右边起取length个字符 |
length(str) | 获取str的长度 |
replace(str, search_str, replace_str) | 在str中,用replace_str替换search_str |
substring(str, position, [length]) | 从str的position位置开始,截取length长度的字符串 |
strcmp(str1, str2) | 逐字符比较两字符串大小,相对返回0,前者大返回1,否则返回-1 |
ltrim(str)、rtrim(str)、trim(str) | 去除字符串前后的空格 |
charset函数
由此可见,数字在数据库中是以二进制的形式存储的。
concat函数
instr函数
说明在MySQL中,字符的第一个位置的下标是1,而不是0。
ucase函数和lcase函数
left函数
right函数
length函数
注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)。
【MySQL学习】MySQL 内置函数2:https://developer.aliyun.com/article/1384032