如何在结果集中选择多条记录中的事件作为天数
例子:
id | event | dateFrom | dateTo
1 festival 2012-06-15 01:18:00 2012-06-17 01:18:00
结果:
id | date
1 2012-06-15
1 2012-06-16
1 2012-06-17
如何在结果集中选择多条记录中的事件作为天数
例子:
id | event | dateFrom | dateTo
1 festival 2012-06-15 01:18:00 2012-06-17 01:18:00
结果:
id | date
1 2012-06-15
1 2012-06-16
1 2012-06-17
你不能。最好的方法是制作一个简单的表格,其中包含一年中的所有日期。我做了一个简单的存储过程:
CREATE DEFINER = 'root_extern'@'%' PROCEDURE fill_calendar
(
IN start_date date,
IN end_date date
)
BEGIN
DECLARE crt_date DATE;
SET crt_date=start_date;
WHILE crt_date < end_date DO
INSERT INTO `calendar` (`date`) VALUES (crt_date);
SET crt_date = ADDDATE(crt_date, INTERVAL 1 DAY);
END WHILE;
END|
您的查询将如下所示:
SELECT date FROM calendar WHERE date BETWEEN dateFrom AND dateTo
使用这样的联合:
(SELECT id, dateFrom date FROM table) UNION (SELECT id, dateTo date FROM table)