如何进行MYSQL查询以检索记录而不会跨越日期?

时间:2018-11-03 19:39:51

标签: mysql date datetime range

有必要在数据库中找到日期间隔与请求的间隔不相交的所有记录。 假设请求的间隔包括开始日期和结束日期。有关记录间隔的数据在date_ranges列中。问题在于日期间隔上的数据格式不方便,它们以这种格式存储: “ YYYY-MM-DD-YYYY-MM-DD / YYYY-MM-DD-YYYY-MM-DD / YYYY-MM-DD-YYYY-MM-DD”。如何创建查询以检索记录而不跨越日期?

示例:

  CREATE TABLE IF NOT EXISTS `test` (
  `id` int(6) unsigned NOT NULL,
  `content` varchar(200) NOT NULL,
  `date_ranges` mediumtext NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `test` (`id`, `content`, `date_ranges`) VALUES
  ('1', 'content1', '2018-10-30 - 2018-11-05/2018-11-12 - 2018-11-14/2019-01-15 - 2019-08-22'),
  ('2', 'content2', '2018-12-15 - 2018-12-17/2018-11-15 - 2018-11-22'),
  ('3', 'content3', '2018-09-30 - 2018-11-19/2018-11-11 - 2018-11-16/2019-01-16 - 2019-08-18/2018-10-30 - 2018-11-05'),
  ('4', 'content4', '2018-10-30 - 2018-11-05'),
  ('5', 'content5', '');

sqlfiddle.com /#!9 / 4b2dcf / 1

0 个答案:

没有答案