Quantcast
Channel: Oracle, MySQL, Sybase, Informix and other databases
Viewing all articles
Browse latest Browse all 1350

How to find events the next day and after midnight in MySQL

$
0
0

Hi

I need your help

the day was divided into four time slots

    00:00:00-06:00:00
    06:00:00-12:00:00
    12:00:00-18:00:00
    18:00:00-24:00:00

for each of these time slots I need to search the rows in the database table MySQL between for start hour and end hour

    21:00:00-09:00:00
    03:00:00-15:00:00
    09:00:00-21:00:00
    15:00:00-03:00:00

that is

    (-3h) 00:00:00-06:00:00 (+3h) 
    (-3h) 06:00:00-12:00:00 (+3h)
    (-3h) 12:00:00-18:00:00 (+3h)
    (-3h) 18:00:00-24:00:00 (+3h)

the `xtable` is truncated each day and recompile with only the events of previous day 

I'v tried this query for time slot  `(-3h) 18:00:00-24:00:00 (+3h)`

    mysql> SELECT * FROM `xtable` WHERE
    	    xDate IN ('2020-05-20')
            AND (
    	    xHourMinute >= '15:00:00'
    	    OR xHourMinute <= '03:00:00'
            );+----------+------------+-------------+----+
    | xID      | xDate      | xHourMinute | ID |+----------+------------+-------------+----+
    | 20006468 | 2020-05-20 | 00:22:19    |  1 |
    | 20006470 | 2020-05-20 | 00:36:40    |  2 |
    | 20006472 | 2020-05-20 | 00:48:04    |  3 |
    | 20006474 | 2020-05-20 | 00:52:06    |  4 |
    | 20006476 | 2020-05-20 | 00:58:15    |  5 |
    | 20006486 | 2020-05-20 | 01:05:00    |  6 |
    | 20006478 | 2020-05-20 | 01:14:15    |  7 |
    | 20006482 | 2020-05-20 | 01:25:35    |  8 |
    | 20006484 | 2020-05-20 | 02:12:01    |  9 |
    | 20006488 | 2020-05-20 | 02:52:27    | 10 |
    | 20006552 | 2020-05-20 | 15:22:20    | 27 |
    | 20006556 | 2020-05-20 | 15:55:00    | 28 |
    | 20006562 | 2020-05-20 | 16:44:00    | 29 |
    | 20006564 | 2020-05-20 | 18:22:00    | 30 |
    | 20006566 | 2020-05-20 | 19:25:00    | 31 |
    | 20006568 | 2020-05-20 | 20:22:58    | 32 |+----------+------------+-------------+----+
    16 rows in set

But the return is wrong because they were extracted these row which are the ones with date `2020-05-20` and not `2020-05-21` remember `24:00:00 (+3h)` this is the next day...

+----------+------------+-------------+----+
    | xID      | xDate      | xHourMinute | ID |+----------+------------+-------------+----+
    | 20006468 | 2020-05-20 | 00:22:19    |  1 |
    | 20006470 | 2020-05-20 | 00:36:40    |  2 |
    | 20006472 | 2020-05-20 | 00:48:04    |  3 |
    | 20006474 | 2020-05-20 | 00:52:06    |  4 |
    | 20006476 | 2020-05-20 | 00:58:15    |  5 |
    | 20006486 | 2020-05-20 | 01:05:00    |  6 |
    | 20006478 | 2020-05-20 | 01:14:15    |  7 |
    | 20006482 | 2020-05-20 | 01:25:35    |  8 |
    | 20006484 | 2020-05-20 | 02:12:01    |  9 |
    | 20006488 | 2020-05-20 | 02:52:27    | 10 |+----------+------------+-------------+----+

the correct return should be

+----------+------------+-------------+----+
    | xID      | xDate      | xHourMinute | ID |+----------+------------+-------------+----+
    | 20006552 | 2020-05-20 | 15:22:20    | 27 |
    | 20006556 | 2020-05-20 | 15:55:00    | 28 |
    | 20006562 | 2020-05-20 | 16:44:00    | 29 |
    | 20006564 | 2020-05-20 | 18:22:00    | 30 |
    | 20006566 | 2020-05-20 | 19:25:00    | 31 |
    | 20006568 | 2020-05-20 | 20:22:58    | 32 |+----------+------------+-------------+----+

Can you help me, please?

My structure table below

    DROP TABLE IF EXISTS `xtable`;
    CREATE TABLE `xtable` (
      `xID` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL,
      `xDate` date DEFAULT NULL,
      `xHourMinute` char(10) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL,
      `ID` int(10) NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (`ID`),
      UNIQUE KEY `xID` (`xID`),
      KEY `xDate` (`xDate`),
      KEY `xHourMinute` (`xHourMinute`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    -- ----------------------------
    -- Records of xtable
    -- ----------------------------
    INSERT INTO `xtable` VALUES ('20006468', '2020-05-20', '00:22:19', '1');
    INSERT INTO `xtable` VALUES ('20006470', '2020-05-20', '00:36:40', '2');
    INSERT INTO `xtable` VALUES ('20006472', '2020-05-20', '00:48:04', '3');
    INSERT INTO `xtable` VALUES ('20006474', '2020-05-20', '00:52:06', '4');
    INSERT INTO `xtable` VALUES ('20006476', '2020-05-20', '00:58:15', '5');
    INSERT INTO `xtable` VALUES ('20006486', '2020-05-20', '01:05:00', '6');
    INSERT INTO `xtable` VALUES ('20006478', '2020-05-20', '01:14:15', '7');
    INSERT INTO `xtable` VALUES ('20006482', '2020-05-20', '01:25:35', '8');
    INSERT INTO `xtable` VALUES ('20006484', '2020-05-20', '02:12:01', '9');
    INSERT INTO `xtable` VALUES ('20006488', '2020-05-20', '02:52:27', '10');
    INSERT INTO `xtable` VALUES ('20006492', '2020-05-20', '03:05:34', '12');
    INSERT INTO `xtable` VALUES ('20006494', '2020-05-20', '04:29:59', '13');
    INSERT INTO `xtable` VALUES ('20006500', '2020-05-20', '05:45:15', '14');
    INSERT INTO `xtable` VALUES ('20006498', '2020-05-20', '05:45:16', '15');
    INSERT INTO `xtable` VALUES ('20006496', '2020-05-20', '05:45:18', '16');
    INSERT INTO `xtable` VALUES ('20006506', '2020-05-20', '07:09:07', '17');
    INSERT INTO `xtable` VALUES ('20006504', '2020-05-20', '07:09:07', '18');
    INSERT INTO `xtable` VALUES ('20006512', '2020-05-20', '07:56:44', '19');
    INSERT INTO `xtable` VALUES ('20006510', '2020-05-20', '07:56:44', '20');
    INSERT INTO `xtable` VALUES ('20006514', '2020-05-20', '08:13:02', '21');
    INSERT INTO `xtable` VALUES ('20006518', '2020-05-20', '08:25:12', '22');
    INSERT INTO `xtable` VALUES ('20006536', '2020-05-20', '09:51:28', '23');
    INSERT INTO `xtable` VALUES ('20006538', '2020-05-20', '10:14:25', '24');
    INSERT INTO `xtable` VALUES ('20006544', '2020-05-20', '11:40:42', '25');
    INSERT INTO `xtable` VALUES ('20006548', '2020-05-20', '14:16:00', '26');
    INSERT INTO `xtable` VALUES ('20006552', '2020-05-20', '15:22:20', '27');
    INSERT INTO `xtable` VALUES ('20006556', '2020-05-20', '15:55:00', '28');
    INSERT INTO `xtable` VALUES ('20006562', '2020-05-20', '16:44:00', '29');
    INSERT INTO `xtable` VALUES ('20006564', '2020-05-20', '18:22:00', '30');
    INSERT INTO `xtable` VALUES ('20006566', '2020-05-20', '19:25:00', '31');
    INSERT INTO `xtable` VALUES ('20006568', '2020-05-20', '20:22:58', '32');


Viewing all articles
Browse latest Browse all 1350

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>