SUBTIME 时间减法运算

SUBTIME(time,expr) 函数用于执行时间的减法运算,返回一个时间字符串,如:12:00:15。

参数说明

  • time 是一个时间或日期时间表达式,如:2022-04-26 12:30:00 或者 12:30:00。

  • expr 是一个时间。如:00:30:00 或者 0:30:0

示例用法

(1)使用 SUBTIME(time,expr) 函数对给定的时间字符串减去 30 分钟。如下:

mysql> select SUBTIME('2022-04-26 12:30:00', '00:30:00');
+--------------------------------------------+
| SUBTIME('2022-04-26 12:30:00', '00:30:00') |
+--------------------------------------------+
| 2022-04-26 12:00:00                        |
+--------------------------------------------+
1 row in set (0.02 sec)

mysql> select SUBTIME('12:30:00', '00:30:00');
+---------------------------------+
| SUBTIME('12:30:00', '00:30:00') |
+---------------------------------+
| 12:00:00                        |
+---------------------------------+
1 row in set (0.03 sec)

mysql> select SUBTIME('12:30:00', '0:30:0');
+-------------------------------+
| SUBTIME('12:30:00', '0:30:0') |
+-------------------------------+
| 12:00:00                      |
+-------------------------------+
1 row in set (0.03 sec)

(2)使用 SUBTIME(time,expr) 函数将当前日期减去 30 分钟。如下:

mysql> select NOW(),SUBTIME(NOW(), '00:30:00');
+---------------------+----------------------------+
| NOW()               | SUBTIME(NOW(), '00:30:00') |
+---------------------+----------------------------+
| 2022-04-26 11:50:17 | 2022-04-26 11:20:17        |
+---------------------+----------------------------+
1 row in set (0.04 sec)

(3)使用 SUBTIME(time,expr) 函数时,如果任意一个参数为NULL,或者为空字符串,直接返回 NULL。如下:

mysql> select SUBTIME(NULL, '00:30:00');
+---------------------------+
| SUBTIME(NULL, '00:30:00') |
+---------------------------+
| NULL                      |
+---------------------------+
1 row in set (0.02 sec)

mysql> select SUBTIME(NOW(), NULL);
+----------------------+
| SUBTIME(NOW(), NULL) |
+----------------------+
| NULL                 |
+----------------------+
1 row in set (0.02 sec)

mysql> select SUBTIME('', '00:30:00');
+-------------------------+
| SUBTIME('', '00:30:00') |
+-------------------------+
| NULL                    |
+-------------------------+
1 row in set (0.03 sec)

mysql> select SUBTIME(NOW(), '');
+--------------------+
| SUBTIME(NOW(), '') |
+--------------------+
| NULL               |
+--------------------+
1 row in set (0.03 sec)

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号