Как сделать ВЫБОР между двумя датами (например, минутами) без каких-либо наборов данных - PullRequest
0 голосов
/ 30 мая 2020

Я понятия не имею, как это решить:

Я немного борюсь - хочу иметь список в MySql / SQL или MariaDB каждой минуты (например, метки времени) между двумя датами - без записи в БД.

например,

StartDate 2020-05-30 08:01:00

EndDate 2020-05-30 12:01:00

Теперь мне нужен список каждой минуты между этими двумя метками

Нравится

--> Select Minutes between StartDate and Enddate

Объявление

2020-05-30 08:01:00

2020-05-30 08:02:00

2020-05-30 08:03:00

2020-05-30 08:04:00

...

Спасибо за вашу помощь

Ответы [ 2 ]

1 голос
/ 30 мая 2020

Вы можете использовать рекурсивный CTE:

with recursive ts as (
      select timestamp('2020-05-30 08:01:00') as ts
      union all
      select ts + interval 1 minute
      from ts
      where ts < '2020-05-30 12:01:00'
     )
select ts.ts
from ts;

Здесь - скрипт db <>.

0 голосов
/ 05 июня 2020

Только в MariaDB (начиная с 10.0):

SELECT  '2020-05-30 08:01:00' + INTERVAL seq MINUTE
    FROM seq_0_to_241
    WHERE '2020-05-30 08:01:00' + INTERVAL seq MINUTE
       <= '2020-05-30 12:01:00';

(«241» является оптимальным, но подойдет и любое большее число.)

(MariaDB добавила CTE в 10.2. )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...