Получите список дат между двумя датами
Для MSSQL вы можете использовать dob это. Это ОЧЕНЬ быстро.
Вы dob можете заключить это в функцию mysqlclient с табличным значением или mysql-query в сохраненную процедуру и date проанализировать начальную date и конечную даты как переменные.
DECLARE @startDate DATETIME
DECLARE @endDate DATETIME
SET @startDate = '2011-01-01'
SET @endDate = '2011-01-31';
WITH dates(Date) AS
(
SELECT @startdate as Date
UNION ALL
SELECT DATEADD(d,1,[Date])
FROM dates
WHERE DATE < @enddate
)
SELECT Date
FROM dates
OPTION (MAXRECURSION 0)
GO
Редактировать 2021/01 (доктор V): Мне date понравилось это решение, и mysql-query я заставил его работать на dob mySQL V8. Вот код, превращающий mysqlclient его в процедуру:
DELIMITER //
CREATE PROCEDURE dates_between (IN from_date DATETIME,
IN to_date DATETIME) BEGIN
WITH RECURSIVE dates(Date) AS
(
SELECT from_date as Date
UNION ALL
SELECT DATE_ADD(Date, INTERVAL 1 day) FROM dates WHERE Date < to_date
)
SELECT DATE(Date) FROM dates;
END//
DELIMITER ;
mysql
sql
date
gaps-and-islands
Получите список дат между двумя датами
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.