赞
踩
MySQL 中有许多内置的日期函数可以对日期和时间进行处理。以下是 MySQL 中常用的日期函数:
函数名称 | 说明 |
---|---|
now() | 返回当前的日期和时间 |
curdate() / current_date() | 返回当前日期 |
curtime() / current_time() | 返回当前时间 |
current_timestamp() | 当前时间戳 |
year / month / day(date) | 返回指定日期的年份 / 月份 / 天数 |
hour / minute / second(time) | 返回指定时间的小时数 / 分钟数 / 秒数 |
date(datetime) | 返回 datetime 参数的日期部分 |
date_add(date,interval d_value_type) | 在date中添加日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second |
date_sub(date, interval d_value_type) | 在date中减去日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second |
datediff(date1, date2) | 获取两个日期的差,单位是天 |
current_date() 函数
current_date() 函数用于获取当前的日期:
current_time() 函数
current_time() 函数用于获取当前时间:
current_timestamp() 函数
current_timestamp() 函数用于获取当前的时间戳:
date_add() 函数
在给定日期的基础上加上日期:
date_sub() 函数
在给定的日期基础上减去时间:
datediff() 函数
计算两个日期之间相差的天数:
综合案例:
创建一个评论表,表中包含一个 id,nickname(昵称),content(评论内容),sendtime(评论时间),如下所示:
向表中插入一批数据,如下:
显示所有评论信息,发布日期只显示日期,不用显示时间。则在查询 sendtime 字段时,可以通过 date 函数截取 sendtime 的日期部分进行显示,如下:
再向表中插入一批数据,然后查询在 2 分钟内发布的评论:
MySQL 提供了许多字符串函数,以下是一些常用的函数:
函数名称 | 说明 |
---|---|
charset(str) | 返回字符串字符集 |
concat(string2,[,…]) | 连接字符串 |
instr(string,substring) | 返回 substring 在 string 中首次出现的位置,没有则返回0 |
ucase(string) | 将该字符串转换为大写 |
lcase(string) | 将该字符串转换为小写 |
left(string,length) | 从 string 中的左边开始取 length 个字符 |
length(string) | 且字符串 string 的长度 |
replace(str,search_str,replace_str) | 在 str 中用 replace_str 替换 search_str |
strcmp(str1,str2) | 逐字符比较两个字符串大小 |
substring(str,position,[,length]) | 从 str 的 postion 开始,取 length 个字符 |
ltrim(string) / rtrim(string) / trim(string) | 去除前空格或后空格 |
这些函数可以对字符串进行各种处理和转换。除此之外,还有很多其它的字符串函数可供使用,具体使用哪些函数需要根据具体的业务需求来决定。
charset函数
接下来使用以下员工表(emp),获取 emp 表的 enamel 列的字符集。
可以使用 charset 来获取 emp 表中 ename 列使用的字符集:
concat函数
要求显示 emp 表中的信息,显示格式:''xxx 的工作是 xxx ,属于 xxx 门 ‘’。
length函数
求 emp 表中员工姓名占用的字节数。
注意:length 函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数组算作一个字节,中文表示多个字节数(与字符集编码有关)。
replace函数
将 emp 表中所有名字中有 S 的替换成 '上海 ':
substring函数
截取 emp 表中的 ename 字段的第二个到第三个字符:
concat函数
在 emp 表中,以首字母小写的方式显示所有员工的姓名:首先使用 substring(ename,1,1) 截取出 ename 的首字符,用 lcase 将其转化为小写,然后使用 substring(ename,2) 从ename 的第二个字符开始向后截取全部字符,最后用 concat 函数将它们连接起来。
instr函数
instr 函数用于获取一个字符串在另外一个字符串中首次出现的位置,若没有出现,则返回 0 ,如下:
left函数
left 函数用于从字符串的左边开始,向后截取指定个数的字符,如下:
strcmp函数
strcmp 函数用于逐字符按照 ASCII 码比较两个字符串的大小,两个字符串大小相等则返回 0 ,前者大于后者返回 1,后者大于前者返回 -1。如下:
注意,strcmp 函数在进行比较时,不区分字符的大小。如下:
ltrim、rtrim、trim 函数
ltrim 和 rtrim 函数分别用于去除字符串的前空格和后空格,如下:
trim 函数用于去除字符串的前后空格:
MySQL 提供了很多数学函数,以下是一些常用的函数:
函数名称 | 描述 |
---|---|
abs(number) | 绝对值函数 |
bin(decimal_number) | 十进制转换二进制 |
hex(decimal_number) | 十进制转换十六进制 |
conv(number,from_base,to_base) | 进制转换 |
ceiling(number) | 向上取整 |
floor(number) | 向下取整 |
format(number,decimal_places) | 格式化,保留小数位数(四舍五入) |
rand() | 返回随机浮点数,范围 [0.0,1.0] |
mod(number,denominator) | 取模,求余 |
abs函数
abs 用于获取一个数的绝对值:
bin函数
bin 函数用于将一个十进制的数字转换为二进制:
bin函数
hex 函数用于将一个十进制的数字转换为十六进制:
conv函数
用于将一个数字从一个进制转换为另外一个进制:
ceiling函数
将一个数值进行向上取整:
floor函数
将一个数值进行向下取整:
format函数
用于对数值进行格式化,以四舍五入的方式保留指定位数的小数:
rand函数
用于返回一个随机浮点数,它的范围是 [0.0 - 1.0]:
mod函数
用于对数值进行求余运算:
mod函数
用于查询当前用户:
md5函数
在 MySQL 中,md5 是一个哈希函数,用于将任意长度的字符串转换为固定长度的 128 位哈希值。md5 哈希值是不可逆的,即不能从哈希值退出原始字符串。
md5(str) 用于对一个字符串进行 md5 摘要,摘要后得到一个 32 位字符串:
md5 函数通常用于加密密码。例如:当一个用户创建一个账号并设置密码时,密码通常储存为 md5 哈希值,而不是明文密码。当用户登陆时,输入的密码将被转换成 md5 哈希值,并与储存的哈希值进行比较,以验证密码是否正确。
这么做的好处主要有两个,第一个就是数据库内部储存的不是用户的明文信息,若数据泄漏了,会将影响降低。第二个就是形成的摘要长度是固定的,有利于数据库表结构的设计。
database函数
显示当前用户正在使用的数据库:
password函数
MySQL 数据库使用该函数对用户进行加密:
ifnull函数
ifnull(val1 , val2) 如果 val1 为 null,则返回 val2。否则返回 val1 的值:
总结:MySQL 函数是在对数据进行处理时非常重要的一部分,它们可以对数据进行各种处理和转换,提高数据处理的效率和精确度。这里介绍了一些常用的函数及其用法。这些函数具有广泛的适用性,无论是在开发 web 程序还是数据分析中,都是非常有用的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。