提问者:小点点

在MySQL中使用ADDTIME()函数


我需要在MySQL上使用ADDTIME()函数,将时间间隔添加到time/datetime,然后返回time/datetime。

这是我的MySQL表

+-----+---------------------+----------+-----+
| m   | mDate               | mDatenew | sID |
+-----+---------------------+----------+-----+
| 182 | 2020-06-04 20:15:00 | NULL     |   1 |
| 173 | 2020-06-13 21:35:13 | NULL     |   2 |
|  74 | 2020-06-13 16:22:50 | NULL     |   3 |
+-----+---------------------+----------+-----+

我需要更新列mdateNew的值,使用列mdate的值加上列m的分钟值

首先,更新时,我尝试使用这个查询来获取检查值,但返回值为null

mysql> SELECT
    DATE_FORMAT(
        ADDTIME(mDate, m),
        '%Y-%m-%d %H:%i:%s'
    ) AS t
FROM
    `n`;
+------+
| t    |
+------+
| NULL |
| NULL |
| NULL |
+------+
3 rows in set

如何解决这个问题?

下面得我得表

DROP TABLE IF EXISTS `n`;
CREATE TABLE `n` (
  `m` int(11) DEFAULT NULL,
  `mDate` datetime DEFAULT NULL,
  `mDatenew` datetime DEFAULT NULL,
  `sID` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`sID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of n
-- ----------------------------
INSERT INTO `n` VALUES ('182', '2020-06-04 20:15:00', null, '1');
INSERT INTO `n` VALUES ('173', '2020-06-13 21:35:13', null, '2');
INSERT INTO `n` VALUES ('74', '2020-06-13 16:22:50', null, '3');

共1个答案

匿名用户

我需要更新列mdateNew的值,使用列mdate的值加上列m的分钟值。

MySQL理解带间隔的日期算术。 您可以按如下方式递增日期:

mDate + interval m minute 

如果需要update语句:

update n set mDatenew = mDate + interval m minute