Hi,
I want to calculate the difference in unique date fields between different rows in the same table.
Small sample.
Given the following query SELECT
SELECT
sID,
HHMMSS,
FileName,
TIMESTAMPDIFF( MINUTE, ( SELECT MAX( HHMMSS ) FROM `tbl_pds_timer` WHERE HHMMSS < t.HHMMSS ), HHMMSS ) AS min,
TIMESTAMPDIFF( MINUTE, ( SELECT MAX( HHMMSS ) FROM `tbl_pds_timer` WHERE HHMMSS < t.HHMMSS ), HHMMSS )* 60 AS sec
FROM
`tbl_pds_timer` t ORDER BY sID DESC
+-----+---------------------+----------+-----+-------+
| sID | HHMMSS | FileName | min | sec |
+-----+---------------------+----------+-----+-------+
| 59 | 2021-03-02 06:43:06 | 20210228 | 12 | 720 |
| 58 | 2021-03-02 06:30:20 | 20210227 | 251 | 15060 |
| 57 | 2021-03-02 02:18:35 | 20210226 | 47 | 2820 |
| 56 | 2021-03-02 01:31:18 | 20210225 | 54 | 3240 |
| 55 | 2021-03-02 00:37:01 | 20210224 | 64 | 3840 |
| 54 | 2021-03-01 23:32:31 | 20210223 | 51 | 3060 |
| 53 | 2021-03-01 22:41:23 | 20210222 | 48 | 2880 |
| 52 | 2021-03-01 21:52:45 | 20210221 | 17 | 1020 |
| 51 | 2021-03-01 21:35:36 | 20210220 | 17 | 1020 |
| 50 | 2021-03-01 21:18:16 | 20210219 | 45 | 2700 |
+-----+---------------------+----------+-----+-------+
10 rows in set (0.04 sec)
I have tried update the fields timer_min
and timer_sec
on the tbl_pds_timer
table using the following query without success because the rows affected of update are zero…
UPDATE `tbl_pds_timer` AS k
JOIN (
SELECT
sID,
HHMMSS,
FileName,
TIMESTAMPDIFF( MINUTE, ( SELECT MAX( HHMMSS ) FROM `tbl_pds_timer` WHERE HHMMSS < t.HHMMSS ), HHMMSS ) AS min,
TIMESTAMPDIFF( MINUTE, ( SELECT MAX( HHMMSS ) FROM `tbl_pds_timer` WHERE HHMMSS < t.HHMMSS ), HHMMSS )* 60 AS sec
FROM
`tbl_pds_timer` t
) AS q
SET k.timer_min = q.min,
k.timer_sec = q.sec;
Query OK, 0 rows affected (0.04 sec)
Rows matched: 59 Changed: 0 Warnings: 0
Any suggestions for what date functions I would use in MySQL, or is there a subselect that would do this?
tbl_pds_timer
complete table below
-- ----------------------------
-- Table structure for tbl_pds_timer
-- ----------------------------
DROP TABLE IF EXISTS `tbl_pds_timer`;
CREATE TABLE `tbl_pds_timer` (
`FileName` varchar(255) DEFAULT NULL,
`timer_min` varchar(255) DEFAULT NULL,
`timer_sec` decimal(10, 2) NULL DEFAULT NULL,
`HHMMSS` datetime(0) NULL DEFAULT NULL,
`sID` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`sID`) USING BTREE,
UNIQUE INDEX `FileName`(`FileName`) USING BTREE
) ENGINE = MyISAM;
-- ----------------------------
-- Records of tbl_pds_timer
-- ----------------------------
INSERT INTO `tbl_pds_timer` VALUES ('20210101', NULL, NULL, '2021-02-28 19:46:08', 1);
INSERT INTO `tbl_pds_timer` VALUES ('20210102', NULL, NULL, '2021-02-28 19:58:14', 2);
INSERT INTO `tbl_pds_timer` VALUES ('20210103', NULL, NULL, '2021-02-28 20:11:10', 3);
INSERT INTO `tbl_pds_timer` VALUES ('20210104', NULL, NULL, '2021-02-28 21:11:19', 4);
INSERT INTO `tbl_pds_timer` VALUES ('20210105', NULL, NULL, '2021-02-28 22:43:17', 5);
INSERT INTO `tbl_pds_timer` VALUES ('20210106', NULL, NULL, '2021-02-28 23:31:07', 6);
INSERT INTO `tbl_pds_timer` VALUES ('20210107', NULL, NULL, '2021-03-01 00:02:41', 7);
INSERT INTO `tbl_pds_timer` VALUES ('20210108', NULL, NULL, '2021-03-01 00:16:40', 8);
INSERT INTO `tbl_pds_timer` VALUES ('20210109', NULL, NULL, '2021-03-01 00:28:46', 9);
INSERT INTO `tbl_pds_timer` VALUES ('20210110', NULL, NULL, '2021-03-01 00:41:16', 10);
INSERT INTO `tbl_pds_timer` VALUES ('20210111', NULL, NULL, '2021-03-01 01:00:39', 11);
INSERT INTO `tbl_pds_timer` VALUES ('20210112', NULL, NULL, '2021-03-01 01:23:54', 12);
INSERT INTO `tbl_pds_timer` VALUES ('20210113', NULL, NULL, '2021-03-01 01:41:52', 13);
INSERT INTO `tbl_pds_timer` VALUES ('20210114', NULL, NULL, '2021-03-01 02:06:37', 14);
INSERT INTO `tbl_pds_timer` VALUES ('20210115', NULL, NULL, '2021-03-01 02:26:49', 15);
INSERT INTO `tbl_pds_timer` VALUES ('20210116', NULL, NULL, '2021-03-01 02:39:00', 16);
INSERT INTO `tbl_pds_timer` VALUES ('20210117', NULL, NULL, '2021-03-01 02:50:55', 17);
INSERT INTO `tbl_pds_timer` VALUES ('20210118', NULL, NULL, '2021-03-01 03:18:14', 18);
INSERT INTO `tbl_pds_timer` VALUES ('20210119', NULL, NULL, '2021-03-01 03:40:22', 19);
INSERT INTO `tbl_pds_timer` VALUES ('20210120', NULL, NULL, '2021-03-01 03:58:19', 20);
INSERT INTO `tbl_pds_timer` VALUES ('20210121', NULL, NULL, '2021-03-01 04:14:01', 21);
INSERT INTO `tbl_pds_timer` VALUES ('20210122', NULL, NULL, '2021-03-01 04:40:22', 22);
INSERT INTO `tbl_pds_timer` VALUES ('20210123', NULL, NULL, '2021-03-01 05:10:23', 23);
INSERT INTO `tbl_pds_timer` VALUES ('20210124', NULL, NULL, '2021-03-01 05:30:37', 24);
INSERT INTO `tbl_pds_timer` VALUES ('20210125', NULL, NULL, '2021-03-01 06:02:43', 25);
INSERT INTO `tbl_pds_timer` VALUES ('20210126', NULL, NULL, '2021-03-01 06:49:15', 26);
INSERT INTO `tbl_pds_timer` VALUES ('20210127', NULL, NULL, '2021-03-01 07:20:08', 27);
INSERT INTO `tbl_pds_timer` VALUES ('20210128', NULL, NULL, '2021-03-01 07:49:21', 28);
INSERT INTO `tbl_pds_timer` VALUES ('20210129', NULL, NULL, '2021-03-01 08:21:58', 29);
INSERT INTO `tbl_pds_timer` VALUES ('20210130', NULL, NULL, '2021-03-01 08:36:03', 30);
INSERT INTO `tbl_pds_timer` VALUES ('20210131', NULL, NULL, '2021-03-01 08:49:58', 31);
INSERT INTO `tbl_pds_timer` VALUES ('20210201', NULL, NULL, '2021-03-01 09:20:30', 32);
INSERT INTO `tbl_pds_timer` VALUES ('20210202', NULL, NULL, '2021-03-01 09:53:16', 33);
INSERT INTO `tbl_pds_timer` VALUES ('20210203', NULL, NULL, '2021-03-01 10:37:21', 34);
INSERT INTO `tbl_pds_timer` VALUES ('20210204', NULL, NULL, '2021-03-01 11:32:05', 35);
INSERT INTO `tbl_pds_timer` VALUES ('20210205', NULL, NULL, '2021-03-01 12:06:37', 36);
INSERT INTO `tbl_pds_timer` VALUES ('20210206', NULL, NULL, '2021-03-01 12:19:50', 37);
INSERT INTO `tbl_pds_timer` VALUES ('20210207', NULL, NULL, '2021-03-01 12:32:58', 38);
INSERT INTO `tbl_pds_timer` VALUES ('20210208', NULL, NULL, '2021-03-01 13:10:33', 39);
INSERT INTO `tbl_pds_timer` VALUES ('20210209', NULL, NULL, '2021-03-01 13:57:31', 40);
INSERT INTO `tbl_pds_timer` VALUES ('20210210', NULL, NULL, '2021-03-01 14:48:57', 41);
INSERT INTO `tbl_pds_timer` VALUES ('20210211', NULL, NULL, '2021-03-01 15:21:01', 42);
INSERT INTO `tbl_pds_timer` VALUES ('20210212', NULL, NULL, '2021-03-01 15:50:30', 43);
INSERT INTO `tbl_pds_timer` VALUES ('20210213', NULL, NULL, '2021-03-01 16:37:51', 44);
INSERT INTO `tbl_pds_timer` VALUES ('20210214', NULL, NULL, '2021-03-01 17:21:09', 45);
INSERT INTO `tbl_pds_timer` VALUES ('20210215', NULL, NULL, '2021-03-01 18:09:29', 46);
INSERT INTO `tbl_pds_timer` VALUES ('20210216', NULL, NULL, '2021-03-01 18:55:31', 47);
INSERT INTO `tbl_pds_timer` VALUES ('20210217', NULL, NULL, '2021-03-01 19:42:30', 48);
INSERT INTO `tbl_pds_timer` VALUES ('20210218', NULL, NULL, '2021-03-01 20:32:32', 49);
INSERT INTO `tbl_pds_timer` VALUES ('20210219', NULL, NULL, '2021-03-01 21:18:16', 50);
INSERT INTO `tbl_pds_timer` VALUES ('20210220', NULL, NULL, '2021-03-01 21:35:36', 51);
INSERT INTO `tbl_pds_timer` VALUES ('20210221', NULL, NULL, '2021-03-01 21:52:45', 52);
INSERT INTO `tbl_pds_timer` VALUES ('20210222', NULL, NULL, '2021-03-01 22:41:23', 53);
INSERT INTO `tbl_pds_timer` VALUES ('20210223', NULL, NULL, '2021-03-01 23:32:31', 54);
INSERT INTO `tbl_pds_timer` VALUES ('20210224', NULL, NULL, '2021-03-02 00:37:01', 55);
INSERT INTO `tbl_pds_timer` VALUES ('20210225', NULL, NULL, '2021-03-02 01:31:18', 56);
INSERT INTO `tbl_pds_timer` VALUES ('20210226', NULL, NULL, '2021-03-02 02:18:35', 57);
INSERT INTO `tbl_pds_timer` VALUES ('20210227', NULL, NULL, '2021-03-02 06:30:20', 58);
INSERT INTO `tbl_pds_timer` VALUES ('20210228', NULL, NULL, '2021-03-02 06:43:06', 59);