在 MySQL 中使用 ADDTIME() 函数

Posted

技术标签:

【中文标题】在 MySQL 中使用 ADDTIME() 函数【英文标题】:Usage the ADDTIME() function in MySQL 【发布时间】:2020-06-15 13:52:26 【问题描述】:

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

这是我的 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 |
+-----+---------------------+----------+-----+

我需要用列mDate 的值更新列mDatenew 的值,并添加列m 的分钟值

首先更新我已经尝试过这个查询检查值,但返回为空

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】:

我需要用列mDate 的值更新列mDatenew 的值,并添加列m 的分钟值。

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

mDate + interval m minute 

如果你想要update 声明:

update n set mDatenew = mDate + interval m minute

【讨论】:

以上是关于在 MySQL 中使用 ADDTIME() 函数的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 日期函数大全(更新完成)

mysql日期函数问题? FROM_UNIXTIME

mysql计算年龄

sql mysql__addtime.sql

ADDTIME()

mysql 内置函数