MySQL - SUBTIME() 函数
MySQL SUBTIME() 函数用于将指定的时间间隔从日期时间或时间值中减去。与 SUBDATE() 函数不同,此函数接受日期、日期时间或时间值作为参数,而不仅仅是日期值。
此 MySQL 函数接受两个参数:日期时间或时间值,从表示日期、日期时间或时间的表达式中减去表示时间间隔的表达式,并返回最终获得的时间戳。如果两个参数中有一个为 NULL,则此函数返回 NULL 值。
语法
以下是 MySQL SUBTIME() 函数的语法 -
SUBTIME(expr1, expr2)
参数
此方法接受两个参数。具体说明如下 -
expr1 是表示日期时间或时间的表达式。
expr2 是表示要添加的时间间隔的表达式。
返回值
此函数返回从给定时间中减去指定时间表达式的结果。返回值是一个新的时间值。
示例
在以下查询中,我们使用 SUBTIME() 函数减去指定的时间值 -
SELECT SUBTIME('10:40:32', '06:04:01') As Result;
输出
这将产生以下结果 -
Result |
---|
04:36:31 |
示例
这里,我们将 DATETIME 值作为第一个参数传递,将 TIME 值作为第二个参数传递 -
SELECT SUBTIME('2018-05-23 15:40:32', '24:04:01') As Result;
输出
以下是输出 -
Result |
---|
2018-05-22 15:36:31 |
示例
在此示例中,我们使用以下 CREATE TABLE 查询创建了一个名为 ORDERS 的表 -
CREATE TABLE ORDERS ( OID INT NOT NULL, DATE VARCHAR (20) NOT NULL, CUSTOMER_ID INT NOT NULL, AMOUNT DECIMAL (18, 2) );
现在,使用 INSERT 语句将以下记录插入到 ORDERS 表中 -
INSERT INTO ORDERS VALUES (102, '2009-10-08 00:00:00', 3, 3000.00), (100, '2009-10-08 00:00:00', 3, 1500.00), (101, '2009-11-20 00:00:00', 2, 1560.00), (103, '2008-05-20 00:00:00', 4, 2060.00);
执行以下查询以获取上述创建的表中的所有插入记录 -
Select * From ORDERS;
以下是 ORDERS 表 -
OID | DATE | CUSTOMER_ID | AMOUNT |
---|---|---|---|
102 | 2009-10-08 00:00:00 | 3 | 3000.00 |
100 | 2009-10-08 00:00:00 | 3 | 1500.00 |
101 | 2009-11-20 00:00:00 | 2 | 1560.00 |
103 | 2008-05-20 00:00:00 | 4 | 2060.00 |
在这里,我们使用 SUBTIME() 函数从"DATE"列中的值中减去 24 小时 -
SELECT OID, DATE, SUBTIME(DATE, '24:00:00') As Result From ORDERS;
输出
输出显示如下 −
OID | DATE | Result |
---|---|---|
102 | 2009-10-08 00:00:00 | 2009-10-07 00:00:00 |
100 | 2009-10-08 00:00:00 | 2009-10-07 00:00:00 |
101 | 2009-11-20 00:00:00 | 2009-11-19 00:00:00 |
103 | 2008-05-20 00:00:00 | 2008-05-19 00:00:00 |