MySQL自带数学函数方法

本文详细介绍了MySQL中的数学函数,包括绝对值(abs)、符号(sign)、取模(mod)、向下取整(floor)、向上取整(ceiling)、四舍五入(round)、随机数(rand)、圆周率(pi)、余弦(cos)、正弦(sin)、正切(tan)、截断(truncate)、最小值(least)和最大值(greatest)等函数的使用方法及示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. abs(n)

返回n的绝对值

mysql> select abs(2);
  -> 2
mysql> select abs(-32);
  -> 32

2. sign(n)

返回参数的符号(为-1、0或1)

mysql> select sign(-32);
  -> -1
mysql> select sign(0);
  -> 0
mysql> select sign(234);
  -> 1

3.mod(n,m)

取模运算,返回n被m除的余数(同%操作符)

mysql> select mod(234, 10);
  -> 4
mysql> select 234 % 10;
  -> 4
mysql> select mod(29,9);
  -> 2

4. floor(n)

返回 不大于n 的最大整数值

mysql> select floor(1.23);
  -> 1
mysql> select floor(-1.23);
  -> -2

5.ceiling(n)

返回 不小于n 的最小整数值

mysql> select ceiling(1.23);
  -> 2
mysql> select ceiling(-1.23);
  -> -1

6.round(n,d)

返回n的四舍五入值,保留d位小数(d的默认值为0)

mysql> select round(-1.23);
  -> -1
mysql> select round(-1.58);
  -> -2
mysql> select round(1.58);
  -> 2
mysql> select round(1.298, 1);
  -> 1.3
mysql> select round(1.298, 0);
  -> 1
  rand()

7.rand(n)

返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)

mysql> select rand();
  -> 0.5925
mysql> select rand(20);
  -> 0.1811
mysql> select rand(20);
  -> 0.1811
mysql> select rand();
  -> 0.2079
mysql> select rand();
  -> 0.7888

  1. pi( )
     返回圆周率
    mysql> select pi();
      -> 3.141593
      cos(n)

  2. 返回n的余弦值
    mysql> select cos(pi());
      -> -1.000000

  3. sin(n)
     返回n的正弦值
    mysql> select sin(pi());
      -> 0.000000

  4. tan(n)
    返回n的正切值
    mysql> select tan(pi()+1);
      -> 1.557408

12) Rand() Rand(n)

返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
mysql> select rand();
  -> 0.5925
mysql> select rand(20);
  -> 0.1811

13) truncate(n,d)

保留数字n的d位小数并返回
mysql> select truncate(1.223,1);
  -> 1.2
mysql> select truncate(1.999,0);
  -> 1

14. least(x,y,…)

返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)
mysql> select least(2,0);
  -> 0
mysql> select least(34.0,3.0,5.0,767.0);
  -> 3.0
mysql> select least(“b”,“a”,“c”);
  -> “a”

15.greatest(x,y,…)

返回最大值(其余同least())
mysql> select greatest(2,0);
  -> 2
mysql> select greatest(34.0,3.0,5.0,767.0);
  -> 767.0
mysql> select greatest(“b”,“a”,“c”);
  -> “c”

### Java 实现 MySQL 内置函数功能 #### 字符串处理方法 在 Java 中,可以通过 `String` 类以及 Apache Commons Lang 库来实现类似 MySQL 的字符串处理功能。 对于拼接字符串的操作,在 Java 可以使用 `StringBuilder.append()` 方法: ```java public static String concat(String... strings) { StringBuilder sb = new StringBuilder(); for (String str : strings) { sb.append(str); } return sb.toString(); } ``` 填充指定宽度的字符串可以借助 Apache Commons Lang 提供的 `StringUtils.leftPad()` 方法[^1]。 截取子串则可以直接调用 `String.substring(int beginIndex, int endIndex)` 来完成相应操作[^2]。 #### 数值计算方法 针对数值运算方面的需求,Java 自带的 `Math` 类提供了丰富的静态方法用于执行各种数学运算。例如向上取整对应于 `Math.ceil(double a)`;获取随机数可通过 `Math.random()` 或者更推荐的方式是利用 `java.util.Random.nextInt(n)` 生成范围内的伪随机数;四舍五入到指定位数的小数点,则应该考虑使用 `BigDecimal` 对象并设置合适的舍入模式[^3]。 #### 日期时间管理 关于日期时间和 MySQL 内建的时间戳相关联的功能,建议采用 Joda-Time 或者 JDK8 新增的 java.time 包来进行高效便捷的日历逻辑编写。比如取得当前系统默认时区下的今天日期实例化对象可以用如下方式创建 LocalDate: ```java LocalDate today = LocalDate.now(ZoneId.systemDefault()); ``` 而像 DATE_ADD 这样的加减天/月/年的动作也可以很容易地通过 plusDays()/plusMonths() 等 API 完成[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值